如何生成没有与列表相关的字符(例如“,”的随机字符串?

2024-10-01 17:22:08 发布

您现在位置:Python中文网/ 问答频道 /正文

以下是我在本文中使用和引用的代码:

alpha=["One", "Two", "Three"]
beta=["One", "Two", "Three"]
charlie=["One", "Two", "Three"]
import random
alpharandom=random.randint(0,2)
betarandom=random.randint(0,2)
charlierandom=random.randint(0,2)
stringcode=(alpha[alpharandom],beta[betarandom],charlie[charlierandom])
stringcodetwo=str(stringcode).replace(" ", "")
print(stringcodetwo)

我正在使用Python3.0使用列表中的预定义项生成一个随机字符串。这将产生类似于以下内容的输出:

('Two','One','Two')

但是,是否可以生成省略方括号、逗号和引号的格式?我尝试了replace函数,但这似乎只适用于生成的字符串之间的空格。 所需输出的示例如下:

TwoOneTwo

Tags: 字符串alpharandomonereplacebetathreerandint
3条回答

您可以使用循环在集合上迭代,并使用end=”“。您可以删除换行符

alpha=["One", "Two", "Three"]
beta=["One", "Two", "Three"]
charlie=["One", "Two", "Three"]
import random
alpharandom=random.randint(0,2)
betarandom=random.randint(0,2)
charlierandom=random.randint(0,2)
stringcode=(alpha[alpharandom],beta[betarandom],charlie[charlierandom])
for i in range(len(stringcode)):
  print(stringcode[i], end="")

输出中有括号和逗号的原因是您正在打印一个元组

stringcode=(alpha[alpharandom],beta[betarandom],charlie[charlierandom])

此行正在创建一个包含3个字符串的元组

有许多方法可以连接字符串值以生成单个字符串

任何简单的方法都是:

"".join(stringcode)

本质上,它遍历iterable的值(在本例中为元组stringcode),并将它们连接成一个由""分隔的字符串(因此只需连接字符串,中间没有任何内容)

您也可以直接创建字符串而不是元组(如果您需要):

stringcode = alpha[alpharandom] + beta[betarandom] + charlie[charlierandom]
print (stringcode)

因为每个元素都是字符串,所以我们只是将它们连接起来并存储在stringcode

对于哪种方法更好,这个问题可以提供一些见解:How slow is Python's string concatenation vs. str.join?

阅读更多关于元组here和python here中的连接的信息

您可以使用.join字符串方法代替replace

而不是:stringcodetwo=str(stringcode).replace(" ", "")

Do:stringcodetwo="".join(stringcode)

相关问题 更多 >

    热门问题