You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现字典列表中values的指定交叉配对生成元组

解决多列表元素配对问题

原始数据

dvalues = [{'column': 'Environment', 'parse_type': 'iter', 'values': ['AirportEnclosed', 'Bus', 'MotorwayServiceStation']}, {'column': 'Frame Type', 'parse_type': 'list', 'values': ['All']}]

期望输出

('AirportEnclosed', 'All')
('Bus', 'All')
('MotorwayServiceStation', 'All')

当前代码及错误输出

当前代码

for d in dvalue:
    dv = d['values']
    zip_list = zip(dv, d['values'])
    for z in zip_list:
        print(z)

错误输出

('AirportEnclosed', 'AirportEnclosed')
('Bus', 'Bus')
('MotorwayServiceStation', 'MotorwayServiceStation')
('All', 'All')

修改方案

当前代码的问题是把每个列表的元素和自身配对,而非取两个不同列表的元素做跨列表全组合。可以通过以下两种方式修改:

方式一:嵌套循环

先提取两个独立的列表,再通过嵌套循环完成配对:

# 提取两个列表的元素
env_list = dvalues[0]['values']
frame_list = dvalues[1]['values']

# 嵌套循环生成配对
for env in env_list:
    for frame in frame_list:
        print((env, frame))

方式二:使用itertools.product(更简洁)

利用itertools.product直接生成多个可迭代对象的笛卡尔积,适合多列表配对场景:

import itertools

env_list = dvalues[0]['values']
frame_list = dvalues[1]['values']

for pair in itertools.product(env_list, frame_list):
    print(pair)

两种方式都能输出你期望的配对结果。

内容的提问来源于stack exchange,提问作者gdogg371

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 19:09:28