首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用python列表创建单词组合

如何使用python列表创建单词组合
EN

Stack Overflow用户
提问于 2022-08-29 04:23:27
回答 2查看 76关注 0票数 0

我有python列表,希望创建一个没有重复的单词组合,并搜索字符串中可用的每个组合。

代码语言:javascript
复制
fruits = ['apple','banana','grape','papaya']

创建上述列表的组合如下:

代码语言:javascript
复制
combination = [" apple banana","apple grape","apple papaya","banana grape","banana papaya", "grape papaya"]

是否有可能反转组合列表,例如:

代码语言:javascript
复制
reverse_combination = [" banana apple", "grape apple","papaya apple", "grape banana", "papaya banana", "papaya grape"]

我试着用两个for循环,但我无法得到我需要的东西。如果有人提出更好的逻辑,它将帮助我。谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-08-29 04:31:22

使用itertools.combinations

Ex:

代码语言:javascript
复制
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)

输出:

代码语言:javascript
复制
['apple banana', 'apple grape', 'apple papaya', 'banana grape', 'banana papaya', 'grape papaya'] 
['banana apple', 'grape apple', 'papaya apple', 'grape banana', 'papaya banana', 'papaya grape']
票数 0
EN

Stack Overflow用户

发布于 2022-08-29 04:34:10

可以使用两个for-循环.

代码语言:javascript
复制
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]}")

您可以通过这样做来逆转它:

代码语言:javascript
复制
for combo in combination:
    reverse_combination.append(' '.join(combo.split()[::-1]))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73524103

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档