这段代码演示了如何使用 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 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录