【问题标题】:Access a list index after introducing words using input [duplicate]使用输入引入单词后访问列表索引[重复]
【发布时间】:2018-01-19 00:53:36
【问题描述】:

我想知道为什么我无法访问列表索引。我有一个完整的单词列表(输入),但然后尝试访问例如:list[2],我得到一个错误。

words=[]
n =input().split()
words.append(n)
print (words])

输入:嗨,互联网怎么了 输出:[['hello', 'internet', 'what', 'up']]

print(words[0])

输出:['hello', 'internet', 'what', 'up']

print(words[1])

输出:IndexError:列表索引超出范围

【问题讨论】:

  • 大声笑,不是重复的;一个人必须已经知道区别(更不用说extend的存在了)才能不遇到这个错误
  • 基本误解:“我有一个完整的单词列表(输入)”。你不。你有一个列表,它包含一个元素,它恰好是另一个列表,其中包含单词字符串。

标签: python arrays string python-3.x list


【解决方案1】:

使用extend 而不是appendappend 追加单个元素,而 extend 追加给定列表的所有元素

【讨论】:

  • 非常感谢!!你知道如何扩展以“”分隔但使用 for 的列表中的单词,所以让 say-> for i in range 2: list.extend(input) input=hey what up output=[hey,what]跨度>
  • @AlejandroAlcarazGonzalez 你不知道。 .extend 避免了 for 循环,但你总是可以这样做 for word in input().split(): words.append(word)
  • @AlejandroAlcarazGonzalez 以" " 分隔的单词不是列表!它们是一个单一的字符串。当您调用split() 时,单个字符串会根据" " 分隔符分成多个字符串。因此,那时您有一个单词列表并且所有" " 都已被删除。在您的问题中,您不需要 4 行。您只需要 1 行:words = input().split() 并且可能是另一行 print(words)print(words[1]),具体取决于您想要做什么。如果你需要阅读另一个输入,你只需要扩展,然后你做:words.extend(input().split()) 列表和字符串是不同的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-09-25
  • 2018-12-21
  • 1970-01-01
  • 1970-01-01
  • 2012-02-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多