我需要您的帮助,我的代码如下:
我有一个系列列表值,我想搜索一个单词,它会返回一个数字,如下所示;
search_word = 'cp'
keyword_list = [[1, 'ap'],
[2, 'cp'],
[3, 'mc']]
for each_word in keyword_list:
if search_word in each_word[1]:
print(each_word[0])
上面的代码会打印'2',这很好但是当我从cp'设置 search_word ='时,它与任何内容都不匹配。任何帮助都将受到高度赞赏。
或任何其他替代方案?
答案 0 :(得分:2)
交换in
(__contains__
)测试操作数:
if each_word[1] in search_word:
答案 1 :(得分:0)
字典将是一个pythonic解决方案:
keyword_list = [[1, 'ap'],
[2, 'cp'],
[3, 'mc']]
d = {v: k for k, v in keyword_list}
d['cp'] # 2
如果子串条件"由"组成。很重要,你可以继承dict
:
keyword_list = [[1, 'apab'],
[2, 'cpcd'],
[3, 'mcef']]
class dict_contains(dict):
def __getitem__(self, value):
keys = [k for k in self.keys() if k in value]
key = keys[0] if keys else None
return self.get(key)
d = dict_contains({v: k for k, v in keyword_list})
d['cpcde'] # 2