首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python Wordlist.txt生成器

Python Wordlist.txt生成器
EN

Stack Overflow用户
提问于 2020-08-31 08:36:58
回答 3查看 245关注 0票数 1

好吧,这是错误的,我能感觉到,但我似乎不知道如何正确地迭代我的第二个列表.(它以正确的方式创建文件并进行迭代,但我希望脚本更紧凑,因为我希望能够以某种方式使num = 0-999。注意,我确实意识到当完成这个文件时会得到多大的文件。)

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

我想不知何故做..。

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

我知道这只是打印,但概念相同,不是吗?

任何帮助都是非常感谢的。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-08-31 08:44:02

为了使脚本更紧凑,我建议查看itertools.product

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

代码语言:javascript
复制
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
票数 1
EN

Stack Overflow用户

发布于 2020-08-31 08:44:48

使用itertools.product

代码语言:javascript
复制
adj = ["united", "dramatic", "green"]
noun = ["ladder", "axe", "tiger"]
num = ["0", "1", "2"]

print(list(itertools.product(adj, noun, num)))
票数 1
EN

Stack Overflow用户

发布于 2020-08-31 08:45:49

我做了一个非常简单的代码。请运行我的代码,并让我知道你的意见。

代码语言:javascript
复制
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和名词的组合,可以使用以下代码;

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

结果:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63667456

复制
相关文章

相似问题

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