从列表中获取字符串(如果该字符串包含子字符串)

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])有什么办法可以做到“更漂亮”吗?

Ult*_*nct 8

使用next(..)与发电机。这将排序的break时刻找到的第一个实例。当然,这是假设您的列表中确实存在一个元素。

def f(l, sub):
    return next(x for x in l if sub in x)
Run Code Online (Sandbox Code Playgroud)