如何在Python中将多个单词添加到数组中

0 投票
2 回答
4092 浏览
提问于 2025-04-18 03:25

谢谢大家的建议,真的帮了我很多,我已经做了一些调整。现在只剩下一个最后的问题,当我输入要出现在数组中的单词时,它们实际上在数组中显示成了单个字母。比如说,如果输入的单词是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 个回答

0

你的变量 New_Topic_Words 是一个原始输入,通常在Python中是一个字符串。当你把这个字符串加到你的列表 New_Topic 里时,结果只会得到一个包含这个原始字符串的列表,也就是列表里只有一个元素。

如果你想把这个原始字符串里的每个单词都添加进去,你需要先把这个字符串拆分开来:可以用 split_words = New_Topic_Words.split(' ') 这个方法,然后再用 New_Topic.extend(split_words) 把每个单词作为列表的元素添加进去。

你之前使用的是 append 方法,这个方法只会添加一个元素,所以最后只会把整个列表作为一个元素加进去。你需要用的是 extend 方法,它可以把两个列表合并在一起。

1

我觉得你需要的函数是 list.extend(),而不是 list.append()。因为 extend 是把另一个列表里的元素添加到当前列表里,而 append 是把整个列表作为一个整体加到原来的列表里。

正如其他回答所说,要把从 raw_input() 得到的字符串分开,你需要使用 split() 函数。这个函数需要一个字符串作为参数,通常你会用空格作为分隔符,这样就能把字符串变成一个字符串列表。

Python 文档:

  1. https://docs.python.org/2/tutorial/datastructures.html
  2. https://docs.python.org/2/library/stdtypes.html

撰写回答