我有这个清单:
item = ['AAA:60', 'BBB:10', 'CCC:65', 'DDD:70', 'EEE:70']
然后我把这个字符串传给了我:
widget = 'BBB'
我想根据item
找到widget
中的条目。
如果widget
包含在任何列表条目中,我想在列表中找到该条目。我可以使用item[i]
并保留它将持续的循环列表。
最终输出将是列表条目本身BBB:10
。 (在提供的示例中。)
答案 0 :(得分:4)
您可以尝试:
>>> 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
编辑:请同时阅读@PaulMcGuire's answer。在设计方面应该如何做。
答案 1 :(得分:3)
如果您要进行大量搜索,请重新审视您的设计。这应该是一个dict,其中小部件名称是键,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)
in
运算符现在可以进行可预测的测试:
'BBB' in item_dict # True
'BB' in item_dict # False