检查是否有任何字符串列表在另一个字符串中
Check if any of a list of strings is in another string
在 python 中,我试图创建一个程序来检查 'numbers' 是否在字符串中,但我似乎遇到了错误。这是我的代码:
numbers = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "0"]
test = input()
print(test)
if numbers in test:
print("numbers")
这是我的错误:
TypeError: 'in <string>' requires string as left operand, not list
我尝试将数字更改为 numbers = "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0"
,这基本上删除了 []
,但这也不起作用。希望我能得到答案;谢谢:)
使用内置any()函数:
numbers = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "0"]
s = input()
test = any(n in s for n in numbers)
print(test)
简而言之,您需要单独检查每个数字。
有很多方法可以做到这一点:
例如,您可以使用循环(留作练习)或使用集合来实现此目的
if set(test) & set(numbers):
...
或使用 str.isdigit
:
if any(map(str.isdigit, test)):
...
(请注意,这两个示例都假定您正在测试数字,并且不会轻易推广到任意子字符串。)
正如NPE所说,你必须检查每一个数字。我这样做的方法是使用一个简单的 for 循环。
for i in numbers:
if i in test:
print ("test")
希望对您有所帮助:)
其他可能的方法可能是遍历每个字符并使用 isnumeric()
方法检查它是否为数字:
input_string = input()
# to get list of numbers
num_list = [ch for ch in input_string if ch.isnumeric()]
print (num_list)
# can use to compare with length to see if it contains any number
print(len(num_list)>0)
如果 input_string = 'abc123'
那么,num_list
会将所有数字存储在 input_string
中,即 ['1', '2', '3']
和 len(num_list)>0
的结果是 True
。
在 python 中,我试图创建一个程序来检查 'numbers' 是否在字符串中,但我似乎遇到了错误。这是我的代码:
numbers = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "0"]
test = input()
print(test)
if numbers in test:
print("numbers")
这是我的错误:
TypeError: 'in <string>' requires string as left operand, not list
我尝试将数字更改为 numbers = "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0"
,这基本上删除了 []
,但这也不起作用。希望我能得到答案;谢谢:)
使用内置any()函数:
numbers = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "0"]
s = input()
test = any(n in s for n in numbers)
print(test)
简而言之,您需要单独检查每个数字。
有很多方法可以做到这一点:
例如,您可以使用循环(留作练习)或使用集合来实现此目的
if set(test) & set(numbers):
...
或使用 str.isdigit
:
if any(map(str.isdigit, test)):
...
(请注意,这两个示例都假定您正在测试数字,并且不会轻易推广到任意子字符串。)
正如NPE所说,你必须检查每一个数字。我这样做的方法是使用一个简单的 for 循环。
for i in numbers:
if i in test:
print ("test")
希望对您有所帮助:)
其他可能的方法可能是遍历每个字符并使用 isnumeric()
方法检查它是否为数字:
input_string = input()
# to get list of numbers
num_list = [ch for ch in input_string if ch.isnumeric()]
print (num_list)
# can use to compare with length to see if it contains any number
print(len(num_list)>0)
如果 input_string = 'abc123'
那么,num_list
会将所有数字存储在 input_string
中,即 ['1', '2', '3']
和 len(num_list)>0
的结果是 True
。