您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在多个列表上并行进行Pythonic迭代

在多个列表上并行进行Pythonic迭代

zip(*var)自动打开您的列表清单。

因此,例如:

var = [['x1' ,'x2' ,'x3'], ['y1', 'y2', 'y3'], ['z1', 'z2', 'z3'], ['w1', 'w2', 'w3']]

for ltrs in zip(*var):
    print(", ".join(ltrs))

结果是

x1, y1, z1, w1
x2, y2, z2, w2
x3, y3, z3, w3

根据下面的评论,他想使用字典中的项目,

var = {
    'id_172': ['x1', 'x2', 'x3'],
    'id_182': ['y1', 'y2', 'y3'],
    'id_197': ['z1', 'z2', 'z3']
}

我假设我们正在按键顺序使用值:

keys = sorted(var.keys())
for ltrs in zip(*(var[k] for k in keys)):
    print(", ".join(ltrs))

这使

x1, y1, z1
x2, y2, z2
x3, y3, z3

请注意,这会按照字典顺序(即字符串字母顺序)对键进行排序,例如,“ id_93” “ id_101”之后。如果您的标签需要按数字顺序排序,则需要使用自定义功能,例如

keys = sorted(var.keys(), key=lambda k: int(k[3:]))
python 2022/1/1 18:37:54 有242人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶