04.4 array、列表生成式、生成器表达式、字典/集合推导式

代码

# array 数组

import array

# array 和list 的区别
"""
1. array 只能存放指定的数据类型
2. array 的效率比list高
"""
# "i" 指定int类型
my_array = array.array("i")
my_array.append(1)
# my_array.append("abc")     # TypeError: an integer is required (got type str)
print(my_array)

# 列表生成式(列表推导式),一行代码生成一个列表

# 1. 提取出1-20之间的奇数
odd_list = [i for i in range(21) if i % 2 == 1]
print(odd_list)

# 2. 逻辑复杂的情况
def hadle_item(item):
    return item * item

# 列表生成式 性能高于列表操作
odd_list = [hadle_item(i) for i in range(21) if i % 2 == 1]
print(odd_list, type(odd_list)) # [1, 9, 25, 49, 81, 121, 169, 225, 289, 361] <class 'list'>

# 生成器表达式
odd_gen = (i for i in range(21) if i % 2 == 1)
print(odd_gen, type(odd_gen))   # <generator object <genexpr> at 0x000001519759DBA0> <class 'generator'>

# 字典推导式
my_dict = {"name": "xf", "age": 18, "sex": "男"}
# 反转key 和value的关系
reversed_dict = {value:key for key, value in my_dict.items()}
print(reversed_dict)    # {'xf': 'name', 18: 'age', '男': 'sex'}

# 集合推导式
my_set = {key for key, value in my_dict.items()}
print(my_set, type(my_set))     # {'age', 'sex', 'name'} <class 'set'>
原文地址:https://www.cnblogs.com/zy7y/p/14195158.html