使用'由'组成的Python搜索列表值

时间:2018-02-27 11:06:57

标签: python list search

我需要您的帮助,我的代码如下:

我有一个系列列表值,我想搜索一个单词,它会返回一个数字,如下所示;

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 ='时,它与任何内容都不匹配。任何帮助都将受到高度赞赏。

或任何其他替代方案?

2 个答案:

答案 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