三元表达式,列表推导是,字典生成式
Posted jhpy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了三元表达式,列表推导是,字典生成式相关的知识,希望对你有一定的参考价值。
结论语法思想
三元表达式条件为真的结果, if +判断的条件, else+条件为假时的结果
列表推导式就是结果放在前面,循环跟着想循环的可迭代的东西(iterable)
与列表不同的是它的标志符号‘‘且仍然返回字典的形式
记得还有筛选,多重嵌套
用的很少,,,,
三元表达式
格式为:条件为真时的结果,if + 判断的条件,else +条件为假时的结果
三元表达式的一种思想:如果a<100 是真的,True:对应一个结果,反过来会有另一个结果
栗子:
a=1
b=2
c=‘jh全世界最帅‘ if a<100 else ‘全世界最帅的是jh‘
#来一个装逼的,接手同事看了要打人的
#c=(True:‘jh全世界最帅‘,False:‘Less‘[a<100])#它的思想
print(c)
列表推导式
很简单
就是结果放在前面,循环跟着想循环的可迭代的东西(iterable)
[变量(加工后的变量) for 变量 in iterable]
l1 = [i for i in range(1,101)]
print(l1)
# 输出结果
[1,2,3,4,5,6,...100]
复杂一点的列表表达式可以对原列表进行变换和筛选。
如:
# 想得到1-10中为偶数的平方组成的list
example = [i**2 for i in range(1,11) if i%2 == 0 ]
print(example)
想得到多重嵌套的list中一重嵌套中list长度大于1的list中的数为2的倍数的平方组成的list
example4 = [[1,2,3],[4,5,6],[7,8,9],[10]]
exmaple5 = [j**2 for i in example2 if len(i)>1 for j in i if j%2 == 0]
print(exmaple5)
字典生成式
与列表不同的是它的标志符号‘‘
打印[0:9]**2的结果
print(i:i**2 for i in range(10))
#结果为0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81
打印判断[0:9]%2是0的布尔值返回字典
b=i:i% 2==0 for i in range(10)
print(b)
zip()方法
通过解压缩函数生成了一个字典
keys = [‘name‘, ‘age‘, ‘gender‘]
values = [‘nk‘, 19, ‘male‘]
res = zip(keys, values)
print(F"zip(keys,values): zip(keys,values)")
info_dict = k: v for k, v in res
print(f"info_dict: info_dict")
zip(keys,values): <zip object at 0x11074c088>
info_dict: ‘name‘: ‘nk‘, ‘age‘: 19, ‘sex‘: ‘male‘
练习
练习一:编写名为collatz(number)的函数;实现的功能:参数为偶数时,打印num// 2;参数为奇数时,打印3*number + 1
num=int(input(‘please input integer.‘))
print (num//2 if num%==0 else num*3+1)
...
以上是关于三元表达式,列表推导是,字典生成式的主要内容,如果未能解决你的问题,请参考以下文章