如何在Python中将多个单词添加到数组中
谢谢大家的建议,真的帮了我很多,我已经做了一些调整。现在只剩下一个最后的问题,当我输入要出现在数组中的单词时,它们实际上在数组中显示成了单个字母。比如说,如果输入的单词是football,那么在数组中它会变成 'f' 'o' 'o' 't' 'b' 'a' 'l' 'l'。所以每次随机选择的不是一个完整的单词,而是一个字母。
这段代码是我在一个猜单词游戏中的一部分。
import random
SIX_NATIONS = ["WALES", "SCOTLAND", "ENGLAND", "FRANCE", "ITALY", "IRELAND"]
New_Topic = []
New_Topic_Choice = raw_input("Would you like to create your own topic? yes/no")
if New_Topic_Choice == "yes":
Topic_Name = raw_input("What would you like the topic name to be: ")
Topic_Words = raw_input("Enter all the words that you would like to appear in the array: ")
str.split(Topic_Words)
New_Topic.extend(Topic_Words)
Word = random.choice(New_Topic)
else:
Word = random.choice(SIX_NATIONS)
提前感谢任何回复。
附:我使用的Python版本是2.7。
2 个回答
你的变量 New_Topic_Words
是一个原始输入,通常在Python中是一个字符串。当你把这个字符串加到你的列表 New_Topic
里时,结果只会得到一个包含这个原始字符串的列表,也就是列表里只有一个元素。
如果你想把这个原始字符串里的每个单词都添加进去,你需要先把这个字符串拆分开来:可以用 split_words = New_Topic_Words.split(' ')
这个方法,然后再用 New_Topic.extend(split_words)
把每个单词作为列表的元素添加进去。
你之前使用的是 append
方法,这个方法只会添加一个元素,所以最后只会把整个列表作为一个元素加进去。你需要用的是 extend
方法,它可以把两个列表合并在一起。
我觉得你需要的函数是 list.extend()
,而不是 list.append()
。因为 extend 是把另一个列表里的元素添加到当前列表里,而 append 是把整个列表作为一个整体加到原来的列表里。
正如其他回答所说,要把从 raw_input()
得到的字符串分开,你需要使用 split()
函数。这个函数需要一个字符串作为参数,通常你会用空格作为分隔符,这样就能把字符串变成一个字符串列表。
Python 文档: