Python:将列表中的项目连接到字符串时,如何删除格式?

2024-10-03 02:48:10 发布

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

大家早上好:

我正在开发一个小的Python程序,它将小字符串匹配在一起,以组成虚构的公司名称。名称段存储在三个列表中,每次请求新名称时,从每个列表中随机选择一个字符串。例如,程序可能从三个列表中选择“Eli”、“rce”和“Softworks”,这将给我“Elirce Softworks”。你知道吗

seg1 = namesegs1[random.randint(0, seg1_length)]
seg2 = namesegs2[random.randint(0, seg2_length)]
seg3 = namesegs3[random.randint(0, seg3_length)]
new_name = "{0}{1} {2}".format(seg1, seg2, seg3)

但是,代码实际上返回['Eli']['rce']['Softworks']。这是有道理的,因为它是从列表中加入项目,但我不明白为什么这些不能以某种方式或其他方式删除。你知道吗

我有一个办法让它成功:

new_name = new_name.replace("'", "")
new_name = new_name.replace(",", "")
new_name = new_name.replace("[", "")
new_name = new_name.replace("]", "")

这样很好地去除了格式,但不太令人满意,感觉我做错了。有没有更好的办法?你知道吗

非常感谢您抽出时间。你知道吗


Tags: 字符串name程序名称列表newrandomlength
3条回答

您熟悉Python字符串连接功能吗? 对我来说这听起来像是你需要的。你知道吗

http://docs.python.org/2/library/stdtypes.html#str.join

看起来namesegs1是一个列表列表,而不是一个字符串列表。你知道吗

你从下面得到了什么?你知道吗

new_name = "{0}{1} {2}".format(seg1[0], seg2[0], seg3[0])

顺便说一下,使用random.choice(namesegs1)从列表中随机选择一个项目,而不是使用random.randint所做的事情。你知道吗

假设您使用随机化器的逻辑生成一个输入列表,如下所示: input_list = [['Eli'],['rce'],['Softworks']]

以下代码将为您提供所需的内容:

input_list = [i[0] for i in input_list]
''.join(input_list)

相关问题 更多 >