如何在给定列表中打印出特定对象?

时间:2017-06-13 00:12:22

标签: python python-3.x

所以我的程序应该在一个句子中,然后吐出第三个单词。

以下是我的代码:

L = []
x = input('Enter a sentence: ')
L.append(x.split(' '))
print (L[2])

出于某种原因,我收到错误:IndexError: list index out of range

4 个答案:

答案 0 :(得分:3)

如果您在执行此操作后实际打印出L的值:

L.append(x.split(' '))

你会看到你实际上创建了一个列表列表,这绝对不是你想要的。使用示例输入“chicken bock”运行代码,产生:

[['chicken', 'bock']]

您要做的只是将split的结果分配给L

L = x.split(' ')

此外,您需要注意在句子中输入的元素数量。特别是因为列表从索引0开始,所以您需要确保实际访问边界内的索引。因此,如果我们以“鸡块”作为输入,您对L[2]的测试将无效。您实际上需要L[1]来获取列表的第二个元素。

最后,如果出于某种原因,您仍然希望将“添加”元素添加到列表L,那么根据您制定的解决方案,您实际上想要使用extend而不是{ {1}}:

append

提供第三个要素的实际例子:

L.extend(x.split(' '))

输出:

L = []
x = input('Enter a sentence: ')
L = x.split(' ')
print(L[2])

答案 1 :(得分:1)

您正在将分割句子时创建的列表添加到列表中。因此,您有一个只有一个元素的最终列表,即列表。试试这个:

x = input('Enter a sentence: ')
l = []

l.extend(x.split())

print(new_list[2])

答案 2 :(得分:0)

试试这个:

x = input("Enter a sentence:");
x.split(' ');
print (x[2])

string.split(x);将输出转换为数组,无需使用追加。

如果您想立即将此值附加到数组,只需执行array[a] = x[b],其中a和b是整数。

答案 3 :(得分:0)

python中的

split()返回列表。因此,您只需将列表附加到列表L中。而是执行L=x.split(' ')