python3 推导式

77 阅读1分钟
# 推导式也叫生成式
# 支持推导式的有列表,字典,集合

# 列表推导式
list1 = [i for i in range(10)]
print(list1)  # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
list2 = [i * 2 for i in range(10)]
print(list2)  # [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
list3 = [i * i for i in range(10) if i % 2 == 0]
print(list3)  # [0, 4, 16, 36, 64]
list4 = [(i, j) for i in range(1, 3) for j in range(1, 4)]
print(list4)  # [(1, 1), (1, 2), (1, 3), (2, 1), (2, 2), (2, 3)]

# 字典推导式
dict1 = {i: i**2 for i in range(5)}
print(dict1)  # {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}

list1 = ["name", "age"]
list2 = ["xiaoming", 19]
dict2 = {list1[i]: list2[i] for i in range(len(list1))}
print(dict2)  # {'name': 'xiaoming', 'age': 19}

counts = {"apple": 200, "xiaomi": 20, "huawei": 100}
count1 = {key: value for key,value in counts.items() if value > 50}
print(count1)  # {'apple': 200, 'huawei': 100}

# 集合推导式
list1 = [1, 2, 2, 100]
set1 = {i**2 for i in list1}
print(set1)  # {10000, 1, 4}