检查列表中的项目是否在Python中包含数字

问题描述 投票:0回答:3

我一直在尝试遍历列表,以便找到包含数字的第一项。我遇到了似乎无法在列表项中“搜索”数字的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 list
3个回答
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)

1
投票

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

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

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


0
投票

您已经有了一些不错的答案,但这是另一个答案:

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)
© www.soinside.com 2019 - 2024. All rights reserved.