【问题标题】:Python search list value using 'consist of'Python搜索列表值使用'组成'
【发布时间】:2018-02-27 11:06:56
【问题描述】:

下面的代码需要您的帮助:

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

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' 这很好,但是当我设置 search_word = 'from cp' 时,它什么都不匹配。任何帮助将不胜感激。

或任何其他选择?

【问题讨论】:

    标签: python list search


    【解决方案1】:

    交换in (__contains__) 测试操作数:

    if each_word[1] in search_word:
    

    【讨论】:

      【解决方案2】:

      字典将是一种 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
      

      【讨论】:

        猜你喜欢
        • 2015-06-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-11-25
        • 1970-01-01
        • 2014-05-01
        • 2021-12-12
        • 2013-03-06
        相关资源
        最近更新 更多