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: 生成器不可重复使用,迭代完成后需要重新创建,请按实际场景的需求来判断是否使用

posted @ 2025-01-10 16:01  马猴♂兄贵  阅读(17)  评论(0)    收藏  举报