Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 根据部分字符串在列表中查找条目_Python_List_List Comprehension - Fatal编程技术网

Python 根据部分字符串在列表中查找条目

Python 根据部分字符串在列表中查找条目,python,list,list-comprehension,Python,List,List Comprehension,我有以下清单: item = ['AAA:60', 'BBB:10', 'CCC:65', 'DDD:70', 'EEE:70'] 然后我将这个字符串传递给我: widget = 'BBB' 我想根据小部件在项中查找条目 如果widget包含在任何列表条目中,我想在列表中查找该条目。我可以使用item[I]并保留列表以供循环使用 最终输出将是列表条目本身,BBB:10。(在提供的示例中。)您可以尝试: >>> item = ['AAA:60', 'BBB:10', 'CCC

我有以下清单:

item = ['AAA:60', 'BBB:10', 'CCC:65', 'DDD:70', 'EEE:70']
然后我将这个字符串传递给我:

widget = 'BBB'
我想根据
小部件
中查找条目

如果
widget
包含在任何列表条目中,我想在列表中查找该条目。我可以使用
item[I]
并保留列表以供循环使用

最终输出将是列表条目本身,
BBB:10
。(在提供的示例中。)

您可以尝试:

>>> item = ['AAA:60', 'BBB:10', 'CCC:65', 'DDD:70', 'EEE:70']
>>> widget = 'BBB'

>>> next(i for i in item if i.startswith(widget))
'BBB:10'
或者,如果不一定必须以“BBB”开头,则可以将条件更改为

>>> next(i for i in item if widget in i)
'BBB:10'
>>> next(idx for idx,i in enumerate(item) if widget in i)
1
编辑:请同时阅读。就设计而言,这是应该做的。

您可以尝试:

>>> item = ['AAA:60', 'BBB:10', 'CCC:65', 'DDD:70', 'EEE:70']
>>> widget = 'BBB'

>>> next(i for i in item if i.startswith(widget))
'BBB:10'
或者,如果不一定必须以“BBB”开头,则可以将条件更改为

>>> next(i for i in item if widget in i)
'BBB:10'
>>> next(idx for idx,i in enumerate(item) if widget in i)
1

编辑:请同时阅读。就设计而言,这就是它应该做的。

如果您要进行大量的搜索,请重新访问您的设计。这实际上应该是一个dict,其中widget名称是键,60、10、65等值将是值。您可以从当前列表中使用

item_dict = dict((k,int(v)) for k,v in (i.rsplit(':') for i in item))
然后,您可以使用以下工具轻松查找值:

item_dict['BBB'] # 10 (already converted to an int)
中,操作员现在对是否存在进行可预测的测试:

'BBB' in item_dict # True
'BB' in item_dict # False

如果您将要进行大量的搜索,请重新访问您的设计。这实际上应该是一个dict,其中widget名称是键,60、10、65等值将是值。您可以从当前列表中使用

item_dict = dict((k,int(v)) for k,v in (i.rsplit(':') for i in item))
然后,您可以使用以下工具轻松查找值:

item_dict['BBB'] # 10 (already converted to an int)
中,操作员现在对是否存在进行可预测的测试:

'BBB' in item_dict # True
'BB' in item_dict # False

那么,我对项目[]的索引是什么?我试着用一个
IF
@chow来概括这一点-你可以简单地枚举列表并获取你的结果
下一步(idx代表idx,I在enumerate(item)IF widget in I)
。如果你搜索“BB”呢?您将使用
startswith
测试中的
错误点击“BBB:10”。如果i.startswith(widget+“:”)
,测试
更安全。这假设“:”作为小部件标识符无效-考虑到项目列表中的“:”分隔符,这可能是一个安全的假设。那么我对项目[]的索引是什么?我试着用一个
IF
@chow来概括这一点-你可以简单地枚举列表并获取你的结果
下一步(idx代表idx,I在enumerate(item)IF widget in I)
。如果你搜索“BB”呢?您将使用
startswith
测试中的
错误点击“BBB:10”。如果i.startswith(widget+“:”)
,测试
更安全。这假设“:”作为小部件标识符无效-考虑到项目列表中的“:”分隔符,这可能是一个安全的假设。