Python列表和字典推导式练习

'''
#1. 常规写法:
l = [1, 2, 3, 4, 5, 6]
#计算l列表里的2次方
new_l = []
for i in l:
new_l.append(i * i)
print(new_l) # [1, 4, 9, 16, 25, 36]

# 计算l列表里仅偶数的2次方
new_l = []
for i in l:
if i % 2 == 0:
new_l.append(i*i)
print(new_l) # [4, 16, 36]

##################################################
#2. 列表推导式: [表达式 for i in 可迭代对象 if判断]
l = [1, 2, 3, 4, 5, 6]
print([i * i for i in l]) # [1, 4, 9, 16, 25, 36]
print([i * i for i in l if i % 2 == 0]) # [4, 16, 36]

#如何实现[‘1’, ‘2’, ‘3’]变成[1, 2, 3]
l = ["1", "2", "3"]
print([int(i) for i in l]) # [1, 2, 3]

#old = [[1, 2], [3, 4], [5, 6]]转为 [1,2,3,4,5,6]
old = [[1, 2], [3, 4], [5, 6]]
print([j for i in old for j in i]) # [1, 2, 3, 4, 5, 6]

#将l1列表和l2列表合并输出
l1 = [1, 2, 3]
l2 = [4, 5, 6]
ret = [[i, j] for i in l1 for j in l2]
print(ret) # [[1, 4], [1, 5], [1, 6], [2, 4], [2, 5], [2, 6], [3, 4], [3, 5], [3, 6]]

#3. 字典推导式: {表达式 for i in 字典 if判断}
d = {"k1": "v1", "k2": "v2", "k3": 100}

d2 = {}
for k, v in d.items():
d2[v] = k
print(d2) # {'v1': 'k1', 'v2': 'k2', 100: 'k3'}

print({v: k for k, v in d.items()}) # {'v1': 'k1', 'v2': 'k2', 100: 'k3'}
print({k.upper(): v for k, v in d.items() if not v.isdigit()}) # ?
print({k.upper(): v for k, v in d.items() if type(v) == str}) # {'K1': 'v1', 'K2': 'v2'}
'''
posted @ 2022-04-21 23:28  呼长喜  阅读(72)  评论(0编辑  收藏  举报