Python代码示例:使用生成器和zip函数合并数据
这段代码演示了如何使用 Python 生成器和 zip 函数将两个列表中的数据合并到一个字典中。
def a():
aa = [{'code': 'ECONOMY-SPECIAL-N', 'name': '特价经济舱'}, {'code': 'ECONOMY-PROMOTE-N', 'name': '促销经济舱'}, {'code': 'ECONOMY-ADV-DIS-N', 'name': '折扣高经舱'}]
for li in aa:
name = li['code']
plan = li['name']
# print(name,plan)
yield name, plan
def b():
bb = [{'a': 1, 'bb': 11, 'c': 111}, {'a': 2, 'bb': 22, 'c': 222}, {'a': 3, 'bb': 33, 'c': 222}]
for div in bb:
price1 = div['a']
price2 = div['bb']
price3 = div['c']
# print(price1, price2, price3)
yield price1, price2, price3
def c():
for name, plan, price1, price2, price3 in zip(a(), b()):
wb = {
'q': name, 'w': plan, 'e': price1, 'r': price2, 't': price3
}
print(wb)
if __name__ == '__main__':
c()
代码运行结果为:
{'q': 'ECONOMY-SPECIAL-N', 'w': '特价经济舱', 'e': 1, 'r': 11, 't': 111}
{'q': 'ECONOMY-PROMOTE-N', 'w': '促销经济舱', 'e': 2, 'r': 22, 't': 222}
{'q': 'ECONOMY-ADV-DIS-N', 'w': '折扣高经舱', 'e': 3, 'r': 33, 't': 222}
代码解读:
- 生成器函数 a() 和 b():分别返回两个列表中的元素,使用
yield语句实现生成器功能。 - zip 函数:将两个生成器函数返回的值按顺序打包成元组,并循环遍历。
- 字典 wb:将每个元组中的值分别赋给字典中的键值对。
- print 函数:打印每个字典,展示最终的合并结果。
本代码示例展示了使用生成器和 zip 函数处理数据的简单方法,可以有效地将多个列表中的数据合并到一个字典中。
原文地址: https://www.cveoy.top/t/topic/mmx9 著作权归作者所有。请勿转载和采集!