查找忽略大小写的字符串索引

2024-05-28 23:54:12 发布

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

我有一个字符串,我需要在一个忽略情况的列表中找到索引。

MG
['ADMISSION' ,'Colace','100','mg', 'b.i.d.' , 'insulin','Lente','12']

我想在下一行找到MG的索引作为一个列表。


Tags: 字符串列表情况mgadmissioninsulincolacelente
3条回答

其中一个更优雅的方法是使用生成器:

>>> list = ['ADMISSION' ,'Colace','100','mg', 'b.i.d.' , 'insulin','Lente','12']
>>> next(i for i,v in enumerate(list) if v.lower() == 'mg')
3

上面的代码生成一个生成器,该生成器生成列表中下一个不区分大小写的mg的索引,然后调用next()一次以检索第一个索引。如果您在列表中多次出现mg,则重复调用next()将产生所有这些结果。

这还有一个好处,就是成本稍微低一点,因为不需要创建一个完整的小写列表;只需要处理尽可能多的列表来找到下一个匹配项。

通过将总列表和要搜索的项转换为小写,可以忽略这些情况。

>>> to_find = 'MG'
>>> old_list =  ['ADMISSION' ,'Colace','100','mg', 'b.i.d.' , 'insulin','Lente','12']
>>> new_list = [item.lower() for item in old_list]
>>> new_list.index(to_find.lower())
3

与first相同,但如果您只对索引感兴趣,则不需要创建新的和旧的列表

>>> search_term ="MG"
>>> my_list = ['ADMISSION' ,'Colace','100','mg', 'b.i.d.' , 'insulin','Lente','12']
>>> [item.lower() for item in my_list ].index(search_term .lower())
3

相关问题 更多 >

    热门问题