在python中,如何在搜索字符串匹配后从列表中获取下一个元素

2024-09-28 01:26:11 发布

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

嗨,朋友们,我有一个列表,我正在搜索字符串,随着搜索字符串,我想得到列表项的下一个元素。下面是示例代码

>>> contents = ['apple','fruit','vegi','leafy']
>>> info = [data for data in contents if 'fruit' in data]
>>> print(info)
['fruit']

我希望输出为 水果 维吉


Tags: 字符串代码ininfo元素示例apple列表
3条回答

关于:

def find_adjacents(value, items):
    i = items.index(value)
    return items[i:i+2]

如果value不在items中,您将免费得到一个ValueError异常:)

一种方法是对压缩后的列表进行迭代。在

调用zip(contents, contents[1:]),允许data变量在循环期间接受这些值:

('apple', 'fruit')
('fruit', 'vegi')
('vegi', 'leafy')

按那个顺序。因此,当“fruit”匹配时,data的值为('fruit', 'vegi')。在

考虑一下这个程序:

^{pr2}$

我们将“fruit”与data[0]进行比较,当data为{}时,它将匹配。在

我可能会想到itertools。。。在

>>> import itertools
>>> contents = ['apple','fruit','vegi','leafy']
>>> icontents = iter(contents)
>>> iterable = itertools.dropwhile(lambda x: 'fruit' not in x, icontents)
>>> next(iterable)
'fruit'
>>> next(iterable)
'vegi'

请注意,如果您确实知道您有一个完全匹配的(例如,'fruit' == data而不是{}),那么这将变得更容易:

^{pr2}$

在这两种情况下,您都需要指定如果没有找到匹配的元素应该发生什么。在

相关问题 更多 >

    热门问题