我有一个以数字(0-9)开头的字符串。我知道我可以使用startswith()函数连续进行10个测试,但可能存在更简洁的解决方案。
因此,不必写出以下代码:
if (string.startswith('0') || string.startswith('2') ||
string.startswith('3') || string.startswith('4') ||
string.startswith('5') || string.startswith('6') ||
string.startswith('7') || string.startswith('8') ||
string.startswith('9')):
#do something
有更聪明/更有效的方法吗?
string.startswith('1')
。 - MAKs[0]
或s[:1]
的答案,而是 John Machin 的解决方案:if s.startswith(tuple('0123456789'))
。此外,当发生 s 是元组或列表等序列时,该解决方案会引发错误,这些情况产生与字符串相同的结果。- 另一种解决方案是正则表达式,其模式为 **'\d(?=\D)'**,但在这里使用正则表达式是多余的。 - eyquemstring
是标准库中的一个模块,可能不应该用作变量名。http://docs.python.org/2/library/string.html - gak