三元表达式,列表推导是,字典生成式

结论语法思想

三元表达式条件为真的结果, 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)

...



猜你喜欢

转载自www.cnblogs.com/jhpy/p/11618747.html