【问题标题】:Check if item in list contains a number检查列表中的项目是否包含数字
【发布时间】:2020-04-02 15:13:17
【问题描述】:

我一直在尝试遍历列表以找到第一个包含数字的项目。 我遇到了any(),它似乎无法“搜索”列表项目中的数字。

如果我以下面的列表为例:

["Hello", "World(2)", "Bye 3"]

列表中包含数字的第一项位于位置 1 [World(2)]。

第一次出现“携带”数字后的以下某些项目是否不相关。

我从以下开始:

list1 = ["Hello", "World(2)", "Bye 3"]

for x in list1:
     if x is.digit():        #this method doesn't work because it's only true when the whole item contains numbers.
       x = first_item_where_a_number_appears

如果有人能给出正确方法的提示,那就太好了。

【问题讨论】:

    标签: python string list for-loop integer


    【解决方案1】:

    假设列表中的内容是字符串,则以下内容应该有效:

    list1 = ['Hello', 'World(2)', 'Bye 3']
    
    # For each string in the list
    for s in list1:
        # If any of the characters in the string are digits:
        if any(c.isdigit() for c in s):
            # Print the string and stop searching the list.
            print(s)
            break
    

    输出:

    World(2)
    

    【讨论】:

      【解决方案2】:

      这是一个可能的解决方案(lst 是您的字符串列表):

      idx = next((i for i, x in enumerate(lst) if any(c.isdigit() for c in x)),  -1)
      

      idx 将是第一个包含数字的元素的索引,如果这样的元素不存在,则为 -1

      【讨论】:

        【解决方案3】:

        你已经有了一些很好的答案,但这里有另一个:

        list1 = ['Hello', 'World(2)', 'Bye 3']
        numbers = ['1','2','3','4','5','6','7','8','9','0']
        
        for x in list1:
             if any(a in x for a in numbers):
                print(x)
                break
        
        World(2)
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2023-03-26
          • 2012-08-26
          • 1970-01-01
          • 1970-01-01
          • 2020-05-09
          • 2014-03-02
          • 2018-01-18
          • 1970-01-01
          相关资源
          最近更新 更多