为了账号安全,请及时绑定邮箱和手机立即绑定

如何将列表中的项目附加到Python中的字符串中

如何将列表中的项目附加到Python中的字符串中

长风秋雁 2023-09-26 15:03:59
问题如下:“通过组合上面 3 个列表中的 4 个单词来创建密码。打印密码”在该问题中,组合意味着将单词连接在一起。我的代码打印在下面,但我很好奇如何优化它。我确信我不需要将密码列出来。请随意包含我可以做的任何其他优化。谢谢!import itertoolsimport randomnouns =[A large list of strings]verbs = [A large list of strings]adjs = [A large list of strings]# Make a four word password by combining words from the list of nouns, verbs and adjsoptions = list(itertools.chain(nouns, verbs, adjs))password = []for _ in range (4):    password.append(options[random.randint(0,len(options)-1)])   password = "".join(password)                  print(password)
查看完整描述

3 回答

?
泛舟湖上清波郎朗

TA贡献1818条经验 获得超3个赞

您的规范中似乎没有任何内容可以区分词性。因此,您只有一个用于密码目的的单词列表。

word_list = nouns + verbs + adjs

现在您只需从列表中随机选取四个项目即可。您应该random再次查看文档。 sample并且shuffle在这里很有用。任何人都可以为您抢到 4 件物品。

pass_words = random.sample(word_list, 4)

或者

random.shuffle(word_list)
pass_words = word_list[:4]

最后,简单地连接所选单词:

password = ''.join(pass_words)


查看完整回答
反对 回复 2023-09-26
?
慕斯709654

TA贡献1840条经验 获得超5个赞

很少有一个班轮。

选项1 :

print("".join(random.choice(nouns + verbs + adjs) for _ in range(4)))

选项-2:

print("".join(random.sample(nouns + verbs + adjs, 4)))

选项 3(如果您想要至少一项来自动词、名词和形容词的条目):

print("".join(random.sample([random.choice(nouns),random.choice(verbs),random.choice(adjs),random.choice(nouns + verbs + adjs)], 4)))

这样的衬里有很多,性能上略有差异。


查看完整回答
反对 回复 2023-09-26
?
四季花海

TA贡献1811条经验 获得超5个赞

您可以使用简单的加法来组合列表:

options = nouns + verbs + adjs

您可以使用random.choice()从列表中选择随机项目:

for _ in range (4):
    password.append(random.choice(options))


查看完整回答
反对 回复 2023-09-26
  • 3 回答
  • 0 关注
  • 58 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信