在python中切片列表项

2024-10-16 17:19:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经订购了需要迭代的字符串元素列表。。从列表中的特定元素/项目开始,直到结束。在

我的清单:

ip_list = ['input1','input2','input3',....,'input10']

我想从任何给定的元素(每次运行时都是动态的)迭代,例如考虑input3直到列表的末尾。在

所以我想实现这样的目标:

^{pr2}$

在Python中,我们可以使用位置基对列表进行切片,但不能基于值基。在


Tags: 项目字符串ip元素目标列表动态切片
3条回答

list[list.index(value):]

https://docs.python.org/3/tutorial/datastructures.html

列表.索引(x[,开始[,结束]])

返回值为x的第一个项的列表中从零开始的索引。如果没有该项,则引发ValueError。在

可选参数start和end在slice表示法中解释为,用于将搜索限制到列表的特定子序列。返回的索引是相对于完整序列的开始而不是相对于start参数计算的。在

下面是一个基于iterators的解决方案,它可以处理任何iterable,而不仅仅是列表:

def iterate_from(iterable, start_value):
    # step 1: get an iterator
    itr = iter(iterable)

    # step 2: advance the iterator to the first matching value
    first_value = next(value for value in itr if value == start_value)

    # step 3: yield the remaining values
    yield first_value
    yield from itr

这里我使用^{}函数从iterable中获取迭代器,使用^{}函数向前移动迭代器。您可能还对What does the "yield" keyword do?感兴趣。在

你可以这样使用它:

^{pr2}$

Yes使用index()查找元素在列表中的位置。在

所以如果你的清单是这样的:

ip_list = ['input1','input2','input3']

您希望从input3开始初始化,然后使用ip_list.index('input3')返回{}(so2)的位置。在

然后,您只需以正常方式(就像您在做ip_list[2:])对列表进行切片,但要使用index()

^{pr2}$

Finding the index of an item given a list containing it in Python

相关问题 更多 >