好吧,这是错误的,我能感觉到,但我似乎不知道如何正确地迭代我的第二个列表.(它以正确的方式创建文件并进行迭代,但我希望脚本更紧凑,因为我希望能够以某种方式使num = 0-999。注意,我确实意识到当完成这个文件时会得到多大的文件。)
filename = "mywordlist.txt"
adj = ["united", "dramatic", "green"]
noun = ["ladder", "axe", "tiger"]
num = ["0", "1", "2"]
File = open(filename, "w")
File.write(adj[0]+noun[0]+num[0])
File.write("\n")
File.write(adj[0]+noun[0]+num[1])
File.write("\n")
File.write(adj[0]+noun[0]+num[2])
File.write("\n")
File.write(adj[0]+noun[1]+num[0])
File.write("\n")
File.write(adj[0]+noun[1]+num[1])
File.write("\n")
File.write(adj[0]+noun[1]+num[2])
File.write("\n")
File.write(adj[0]+noun[2]+num[0])
File.write("\n")
File.write(adj[0]+noun[2]+num[1])
File.write("\n")
File.write(adj[0]+noun[2]+num[2])
File.write("\n")
File.write(adj[1]+noun[0]+num[0])
File.write("\n")
File.write(adj[1]+noun[0]+num[1])
File.write("\n")
File.write(adj[1]+noun[0]+num[2])
File.write("\n")
File.write(adj[1]+noun[1]+num[0])
File.write("\n")
File.write(adj[1]+noun[1]+num[1])
File.write("\n")
File.write(adj[1]+noun[1]+num[2])
File.write("\n")
File.write(adj[1]+noun[2]+num[0])
File.write("\n")
File.write(adj[1]+noun[2]+num[1])
File.write("\n")
File.write(adj[1]+noun[2]+num[2])
File.write("\n")
File.write(adj[2]+noun[0]+num[0])
File.write("\n")
File.write(adj[2]+noun[0]+num[1])
File.write("\n")
File.write(adj[2]+noun[0]+num[2])
File.write("\n")
File.write(adj[2]+noun[1]+num[0])
File.write("\n")
File.write(adj[2]+noun[1]+num[1])
File.write("\n")
File.write(adj[2]+noun[1]+num[2])
File.write("\n")
File.write(adj[2]+noun[2]+num[0])
File.write("\n")
File.write(adj[2]+noun[2]+num[1])
File.write("\n")
File.write(adj[2]+noun[2]+num[2])
File.write("\n")
File.close()我想不知何故做..。
adj = ["united", "dramatic", "green"]
noun = ["ladder", "axe", "tiger"]
num =["0", "1", "2"]
for x in range(len(adj)):
print(adj[x]+noun[0])
print(adj[x]+noun[1])
print(adj[x]+noun[2])
print(adj[x]+noun[0]+num[0])
print(adj[x]+noun[0]+num[1])
print(adj[x]+noun[0]+num[2])
print(adj[x]+noun[1]+num[0])
print(adj[x]+noun[1]+num[1])
print(adj[x]+noun[1]+num[2])
print(adj[x]+noun[2]+num[0])
print(adj[x]+noun[2]+num[1])
print(adj[x]+noun[2]+num[2])我知道这只是打印,但概念相同,不是吗?
任何帮助都是非常感谢的。
发布于 2020-08-31 08:44:02
为了使脚本更紧凑,我建议查看itertools.product
from itertools import product
adj = ["united", "dramatic", "green"]
noun = ["ladder", "axe", "tiger"]
num = [str(i) for i in range(3)] # <-- you can increase the number
with open('file.txt', 'w') as f_out:
for c in product(adj, noun, num):
print(''.join(c), file=f_out)这将创建具有以下内容的file.txt:
unitedladder0
unitedladder1
unitedladder2
unitedaxe0
unitedaxe1
unitedaxe2
unitedtiger0
unitedtiger1
unitedtiger2
dramaticladder0
dramaticladder1
dramaticladder2
dramaticaxe0
dramaticaxe1
dramaticaxe2
dramatictiger0
dramatictiger1
dramatictiger2
greenladder0
greenladder1
greenladder2
greenaxe0
greenaxe1
greenaxe2
greentiger0
greentiger1
greentiger2发布于 2020-08-31 08:44:48
使用itertools.product
adj = ["united", "dramatic", "green"]
noun = ["ladder", "axe", "tiger"]
num = ["0", "1", "2"]
print(list(itertools.product(adj, noun, num)))发布于 2020-08-31 08:45:49
我做了一个非常简单的代码。请运行我的代码,并让我知道你的意见。
import itertools
filename = "mywordlist.txt"
adj = ["united", "dramatic", "green"]
noun = ["ladder", "axe", "tiger"]
num = [str(i) for i in range(4)] # from '0' to '3'
total_list = [adj, noun, num]
with open(filename, "w") as fp:
for i in itertools.product(*total_list):
combined_word = " ".join(i)
print(combined_word)
fp.write(combined_word)
fp.write('\n')如果只想添加adj和名词的组合,可以使用以下代码;
import itertools
filename = "mywordlist.txt"
adj = ["united", "dramatic", "green"]
noun = ["ladder", "axe", "tiger"]
num = [str(i) for i in range(4)] # from '0' to '3'
num.insert(0, "")
total_list = [adj, noun, num]
with open(filename, "w") as fp:
for i in itertools.product(*total_list):
combined_word = " ".join(i)
print(combined_word)
fp.write(combined_word)
fp.write('\n')结果:

https://stackoverflow.com/questions/63667456
复制相似问题