gpt4 book ai didi

python - 有效地形成两个集合并集的序列

转载 作者:行者123 更新时间:2023-11-28 20:22:00 26 4
gpt4 key购买 nike

尊敬的这篇文章的读者,

你知道如何在 Python 中有效地形成两个列表的联合序列吗?假设有以下两个列表:

 list_a = [['a','b'],['a','c'],['b','c']]
list_b = ['h','i']

我想计算:

 new_list = [['a','b','h'],['a','b','i'],['a','c','h'],['a','c','i'],['b','c','h'],
['b','c','i']].

到目前为止,我正在使用以下循环:

        new_list = [r+[j] for j in list_b for r in list_a]

但是,我觉得这很难看。我不喜欢这两个循环。我更喜欢使用函数。

您是否有其他想法来完成所需的任务? (除其他事项外,我尝试遵循此 Get the cartesian product of a series of lists in Python 建议,但无济于事。)

我很感激任何建议!

最好的问候,费边

最佳答案

你可以使用 itertools.product :

[a+[b] for a, b in itertools.product(list_a, list_b)]

但是,您的操作方式没有任何问题。如果您真的需要从两个可迭代对象中获取元素的每个组合,那么在列表推导式中使用两个循环就可以了。不过,product 解决方案确实具有更容易扩展到更多可迭代对象的优势(例如,很容易获得三个、四个或十个列表的每个组合,而深度嵌套的循环会变得很麻烦).

关于python - 有效地形成两个集合并集的序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25272113/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com