Tom*_*łda 2 python string substring list
可以说我有以下数据:
l = ['abc', 'def', 'ghi']
sub = 'bc'
Run Code Online (Sandbox Code Playgroud)
“ bc”将始终是列表中仅一个元素的子字符串!
和一个像这样的功能:
def f(l, sub):
return [x for x in l if sub in x][0]
Run Code Online (Sandbox Code Playgroud)
因此该函数将返回“ abc”,因为其中包含“ bc”
我的问题是:编写该函数以使其不使用列表索引的另一种方式是什么?([0])有什么办法可以做到“更漂亮”吗?
使用next(..)
与发电机。这将排序的break
时刻找到的第一个实例。当然,这是假设您的列表中确实存在一个元素。
def f(l, sub):
return next(x for x in l if sub in x)
Run Code Online (Sandbox Code Playgroud)