打印列表中所有给定元素之前的元素

时间:2019-05-26 09:01:25

标签: python python-3.x list

我要打印此列表中紧跟在“ apple”之后的所有元素。

使用

my_list = ["apple","train","apple","bus"]

我期望输出:

(train,bus)

但是我当前的代码

print (my_list[my_list.index("apple") + 1])

仅输出第一个“ train”。

我怎么能得到所有这些?

2 个答案:

答案 0 :(得分:1)

如果要直接在列表中的“苹果”后面获取所有项目,则可以使用列表理解,例如:

my_list = ["apple","train","apple","bus", "apple"]

[my_list[i+1] for i, item in enumerate(my_list) 
              if item == "apple" and i+1 < len(my_list)]
# ['train', 'bus']

只要当前元素是“苹果”,我们都会保留下一个元素-我们不在列表的末尾。

答案 1 :(得分:0)

my_list = ["apple","train","apple","bus"]
index = my_list.index("apple")
print(my_list[index:index+2])

看看Python的slice语法。这将在索引到索引+ 2(不包含)之间显示子列表。 如果要按照问题中的说明将其作为元组,只需将其包装在tuple()

编辑:当然,考虑到您已经拥有apple,您也可以这样做

print(("apple", my_list[my_list.index("apple") + 1)