gpt4 book ai didi

Python 词表排列

转载 作者:太空狗 更新时间:2023-10-30 00:55:01 24 4
gpt4 key购买 nike

我怎样才能让这个脚本从列表中排列最多 3 个单词组合?

List.txt 由 4 个字符串组成:

pass
10
test
word

而不是组合所有的一到四个词,即

output > pass10wordtest, 10testpassword,....etc

我希望最终的组合是:

output > testpassword, passtestword, 10wordtest,....etc

我的代码:

from itertools import permutations
import os

# GET FILE
script_dir = os.path.dirname(os.path.realpath(__file__))
wordlist_rel_path = "List.txt"
wordlist_abs_file_path = os.path.join(script_dir, wordlist_rel_path)

# READ WORD LIST FROM FILE
word_list = []
print ("\ninput file is:", wordlist_abs_file_path,"\n")
with open(wordlist_abs_file_path) as wordlist:
for line in wordlist:
word_list.append(line.rstrip())

# PRINT INPUT LIST
print ("input list contains:")
print(word_list,"\n")

# GENERATE POWERSET
powerset_list = []
print ("output list is:")
for n in range(1, len(word_list)+1):
for perm in permutations(word_list, n):
powerset_list.append( "".join(perm) )
print(powerset_list)

# WRITE LIST TO FILE
powerset_rel_path = "powerset.txt"
powerset_abs_file_path = os.path.join(script_dir, powerset_rel_path)
powerset_abs_file = open(powerset_abs_file_path, 'w')
for item in powerset_list:
powerset_abs_file.write("%s\n" % item)
powerset_abs_file.close()

最佳答案

How can I permute maximum of 3 combination of words from a list?

permutations函数支持第二个参数一次只选择三个输入:

>>> from itertools import permutations
>>> for group in permutations(['pass', '10', 'test', 'word'], 3):
print(''.join(group))

pass10test
pass10word
passtest10
passtestword
password10
passwordtest
10passtest
10password
10testpass
10testword
10wordpass
10wordtest
testpass10
testpassword
test10pass
test10word
testwordpass
testword10
wordpass10
wordpasstest
word10pass
word10test
wordtestpass
wordtest10

关于Python 词表排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32491831/

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