python 生成器表达式与推导式
dict_s = {1: 'chairman', 2: 'secretary', 3: 'director', 4: 'member'}
# 生成器表达式
iter_x = (k for k, v in dict_s.items() if v == 'member')
# 使用 next 和生成器表达式获取单个匹配项
m_type = next((k for k, v in dict_s.items() if v == 'member'), None)
# 将生成器执行完成后生成列表
m_list = list(iter_x)
# 列表推导式
m_list2 = [k for k, v in dict_s.items() if v == 'member']
print(m_type, type(iter_x), m_list, m_list_2)
-----------------------------------------------------------
4 <class 'generator'> [4] [4]
Process finished with exit code 0
用()包围一个迭代式,可以直接创建生成器,之后可以按照生成器的用法来操作。
tips: 生成器不可重复使用,迭代完成后需要重新创建,请按实际场景的需求来判断是否使用

浙公网安备 33010602011771号