对于列表,该方法list.index(x)返回值为的第一个项的列表中的索引x.但是如果我想查看列表项,而不仅仅是整个项目,我如何为此创建最多的Pythoninc方法?
例如,用
l = ['the cat ate the mouse',
'the tiger ate the chicken',
'the horse ate the straw']
Run Code Online (Sandbox Code Playgroud)
这个函数将返回1与参数一起提供tiger.
ken*_*ytm 33
非流畅的方法:
def index_containing_substring(the_list, substring):
for i, s in enumerate(the_list):
if substring in s:
return i
return -1
Run Code Online (Sandbox Code Playgroud)
abyx 解决方案的变化(优化为找到匹配时停止)
def first_substring(strings, substring):
return next(i for i, string in enumerate(strings) if substring in string)
Run Code Online (Sandbox Code Playgroud)
如果您是 2.6 之前的版本,则需要将其next()放在最后
def first_substring(strings, substring):
return (i for i, string in enumerate(strings) if substring in string).next()
Run Code Online (Sandbox Code Playgroud)
单线:
index = [idx for idx, s in enumerate(l) if 'tiger' in s][0]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
33334 次 |
| 最近记录: |