gpt4 book ai didi

python - 获取列表中的所有可能组合

转载 作者:太空狗 更新时间:2023-10-29 21:12:32 26 4
gpt4 key购买 nike

假设我有这样的事情:

L1=['cat', 'dog', 'fish', 'rabbit', 'horse', 'bird', 'frog', 'mouse'...]

for x in L1:
input1= open('file_%s'%(x), 'r')
file1= pickle.load(input1)
for x in L1:
input2= open('file_%s'%(x), 'r')
file2= pickle.load(input2)

而且我想获取文件的每个组合,而不重复已经完成的组合(一旦完成 cat_dog,就不要再做 dog_cat)。有什么办法可以做到这一点?我的真实列表是按字母顺序排列的,如果这有什么不同的话。

最佳答案

实际上,您要问的是生成名称列表中两个项的所有组合(而不是所有它们的可能组合).

这意味着您可以使用内置的 itertools.combinations()生成器函数可以轻松(高效)地生成您想要的成对名称,且不重复:

L1 = ['cat', 'dog', 'fish', 'rabbit', 'horse', 'bird', 'frog', 'mouse']

for pair in combinations(L1, 2):
print(pair)
input1 = open('file_%s' % pair[0], 'r')
input2 = open('file_%s' % pair[1], 'r')

处理对:

('cat', 'dog')
('cat', 'fish')
('cat', 'rabbit')
('cat', 'horse')
('cat', 'bird')
('cat', 'frog')
('cat', 'mouse')
('dog', 'fish')
('dog', 'rabbit')
('dog', 'horse')
('dog', 'bird')
('dog', 'frog')
('dog', 'mouse')
('fish', 'rabbit')
('fish', 'horse')
('fish', 'bird')
('fish', 'frog')
('fish', 'mouse')
('rabbit', 'horse')
('rabbit', 'bird')
('rabbit', 'frog')
('rabbit', 'mouse')
('horse', 'bird')
('horse', 'frog')
('horse', 'mouse')
('bird', 'frog')
('bird', 'mouse')
('frog', 'mouse')

关于python - 获取列表中的所有可能组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5106228/

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