我一直在尝试遍历列表,以便找到包含数字的第一项。我遇到了似乎无法在列表项中“搜索”数字的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
如果有人可以提示正确的方法,那就太好了。
假设您列表中的内容是字符串,则应该可以执行以下操作:
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)
这里是一个可能的解决方案(lst
是您的字符串列表:]
idx = next((i for i, x in enumerate(lst) if any(c.isdigit() for c in x)), -1)
[idx
将是包含数字的第一个元素的索引,如果不存在,则为-1
。
您已经有了一些不错的答案,但这是另一个答案:
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)