我有python列表,希望创建一个没有重复的单词组合,并搜索字符串中可用的每个组合。
fruits = ['apple','banana','grape','papaya']创建上述列表的组合如下:
combination = [" apple banana","apple grape","apple papaya","banana grape","banana papaya", "grape papaya"]是否有可能反转组合列表,例如:
reverse_combination = [" banana apple", "grape apple","papaya apple", "grape banana", "papaya banana", "papaya grape"]我试着用两个for循环,但我无法得到我需要的东西。如果有人提出更好的逻辑,它将帮助我。谢谢。
发布于 2022-08-29 04:31:22
使用itertools.combinations
Ex:
import itertools
fruits = ['apple','banana','grape','papaya']
result = []
resultRev = []
for i, v in itertools.combinations(fruits, 2):
result.append(" ".join([i, v]))
resultRev.append(" ".join([v, i]))
print(result)
print(resultRev)输出:
['apple banana', 'apple grape', 'apple papaya', 'banana grape', 'banana papaya', 'grape papaya']
['banana apple', 'grape apple', 'papaya apple', 'grape banana', 'papaya banana', 'papaya grape']发布于 2022-08-29 04:34:10
可以使用两个for-循环.
for fruit_idx1 in range(0, len(fruits) - 1):
for fruit_idx2 in range(fruit_idx1 + 1, len(fruits) - 1):
combination.append(f"{fruits[fruit_idx1]} {fruits[fruit_idx2]}")您可以通过这样做来逆转它:
for combo in combination:
reverse_combination.append(' '.join(combo.split()[::-1]))https://stackoverflow.com/questions/73524103
复制相似问题