2024-09-28 01:26:11 发布
网友
嗨,朋友们,我有一个列表,我正在搜索字符串,随着搜索字符串,我想得到列表项的下一个元素。下面是示例代码
>>> contents = ['apple','fruit','vegi','leafy'] >>> info = [data for data in contents if 'fruit' in data] >>> print(info) ['fruit']
我希望输出为 水果 维吉
关于:
def find_adjacents(value, items): i = items.index(value) return items[i:i+2]
如果value不在items中,您将免费得到一个ValueError异常:)
value
items
ValueError
一种方法是对压缩后的列表进行迭代。在
调用zip(contents, contents[1:]),允许data变量在循环期间接受这些值:
zip(contents, contents[1:])
data
('apple', 'fruit') ('fruit', 'vegi') ('vegi', 'leafy')
按那个顺序。因此,当“fruit”匹配时,data的值为('fruit', 'vegi')。在
('fruit', 'vegi')
考虑一下这个程序:
我们将“fruit”与data[0]进行比较,当data为{}时,它将匹配。在
data[0]
我可能会想到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而不是{}),那么这将变得更容易:
'fruit' == data
在这两种情况下,您都需要指定如果没有找到匹配的元素应该发生什么。在
关于:
如果
value
不在items
中,您将免费得到一个ValueError
异常:)一种方法是对压缩后的列表进行迭代。在
调用
zip(contents, contents[1:])
,允许data
变量在循环期间接受这些值:按那个顺序。因此,当“fruit”匹配时,
data
的值为('fruit', 'vegi')
。在考虑一下这个程序:
^{pr2}$我们将“fruit”与}时,它将匹配。在
data[0]
进行比较,当data
为{我可能会想到itertools。。。在
请注意,如果您确实知道您有一个完全匹配的(例如,}),那么这将变得更容易:
^{pr2}$'fruit' == data
而不是{在这两种情况下,您都需要指定如果没有找到匹配的元素应该发生什么。在
相关问题 更多 >
编程相关推荐