【发布时间】:2020-12-29 15:09:15
【问题描述】:
根据此处提出的问题:Python itertools.combinations: how to obtain the indices of the combined numbers,给出以下代码:
import itertools
my_list = [7, 5, 5, 4]
pairs = list(itertools.combinations(my_list , 2))
#pairs = [(7, 5), (7, 5), (7, 4), (5, 5), (5, 4), (5, 4)]
indexes = list(itertools.combinations(enumerate(my_list ), 2)
#indexes = [(0, 1), (0, 2), (0, 3), (1, 2), (1, 3), (2, 3)]
有什么方法可以在一行中获取pairs 和indexes,这样我的代码就可以降低复杂度(例如,使用enumerate 或类似的东西)?
【问题讨论】:
-
只需
zip两个迭代器,而不是将它们消耗到列表中。 -
你能帮我怎么做吗?
-
谢谢。我正在阅读以尽快获得解决方案。
-
我不认为你的第二个例子的输出是正确的,如果你从枚举中获取元组的组合,这将是值 和 它们的索引,发出的第一项将是
((0, 7), (1, 5))。您显示的将是仅索引组合的输出,例如来自range(len(my_list))。
标签: arrays python-3.x list combinations itertools