从Python列表中选择特定元素

3

我认为这个问题之前已经被问过了,尽管我找不到一个完全符合我的查询的答案。

我想根据输入的长度打印列表中的某些元素。例如:

if anagramLength == 2:
    print(words[0,5])

我发现了一个叫做'operator.itemgetter'的东西,虽然它可以选择单个元素,但是我想要选择从位置0位置5的所有元素(不包括位置0位置5)。

谢谢!


你是指 words[0:5] 吗? - Dani Mesejo
是的,我想这就是他的意思。 - Joshua Varghese
我的意思就是那样。谢谢...! - Will
3个回答

3

只需正确地切片即可:

words[0:5]

也就是说,将,替换为:
if anagramLength == 2:
    print(words[0:5])

words[0,5] 的使用会产生错误:

TypeError: string indices must be integers

要了解错误的原因,请执行以下操作:
>>> 0,5
(0, 5)

看,它是一个元组。你不能使用元组来切割字符串,但可以使用整数 :)


如此简单,但我甚至没有尝试过。谢谢。 - Will
我回复后才意识到你说的是“打勾”,而不是“点赞”。谢谢 :) - Will
@WillLevine 当然可以 :) 我认为 words[0,5] 会产生错误。是吗?你想知道原因吗? - Joshua Varghese
它确实做到了。怎么回事? - Will
@WillLevine 我会把这个加到答案里。 - Joshua Varghese
啊哈,明白了。我必须承认当我看到它时有些困惑,所以非常感谢你的解释 :) - Will

2
您正在寻找 slicing
语法相当简单:
words[start:stop]

将从“start”索引打印元素到“stop”索引,在您的情况下:
print(words[0:5])

1
你可以使用切片操作:

slicing

if anagramLength == 2:
    print(words[:5])

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接