如何找出str有没有麻木

2024-09-30 03:22:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我有个问题。如果我有一个字符串,例如:

str1 = 'Wazzup1'

和数字:

nums = '1234567890'

我需要一个代码,将看看str1,并告诉我,如果它有任何数字(不是所有的)。请帮忙。你知道吗


Tags: 字符串代码数字numsstr1wazzup1
3条回答

使用^{}generator expression

any(x in nums for x in str1)

下面是一个演示:

>>> str1 = 'Wazzup1'
>>> nums = '1234567890'
>>> any(x in nums for x in str1)
True
>>>

请注意,当您有一组自定义的数字要测试时,上面的内容是适用的。但是,如果您只是在查找数字,那么一种更简洁的方法是使用^{}

>>> str1 = 'Wazzup1'
>>> any(x.isdigit() for x in str1)
True
>>>

大多数Python程序员都会告诉您,最简洁的方法是使用:

any(x in nums for x in str1)

但是,如果您是Python新手,或者需要更好地掌握字符串操作的基本知识,那么您应该学习如何使用更基本的工具来实现这一点。你知道吗

在Python中,可以使用索引周围的方括号访问字符串、列表、元组或任何其他iterable的单个元素。字符串的字符从0开始索引(例如"hello"[0]给出"h")。你知道吗

使用for循环,对于Python新手来说,该解决方案比上述any解决方案更容易理解:

result = False
for i in range(len(str1)):
    if str1[i] in nums:
        result = True

Python for循环还可以直接迭代字符串的元素:

result = False
for x in str1:
    if x in nums:
        result = True

在本文的第一个代码片段中,表达式x in nums for x in str1使用Python的列表理解特性。它遍历str1的每个元素x,并找到x in nums的结果。any(x in nums for x in str1)返回True如果(并且仅当)这些结果中至少有一个是True(表示数字在str1中)。这很像本文中给出的第二个for循环示例,许多Python程序员选择这个选项是因为它简洁,而且其他Python程序员仍然可以理解。你知道吗

使用any函数,当iterable中至少有一个元素为true时,该函数返回一个为true的布尔值。你知道吗

string = 'Wazzup1'
result = any(c.isdigit() for c in string)
print(result) # True

相关问题 更多 >

    热门问题