[英]Counting letters and numbers of list
我正在尝试计算列表的字母和数字的数量。 例如我想得到 15 个字母和 5 个数字。 我有一个问题,因为我得到了结果,但是当我使用调试器时,我看到 isdigit() 的 5 个函数跳过选项并转到 isaplha()。 这是什么原因? 第二个问题是,例如我得到了 2 个数字作为 10,但我只想得到 1。如何重建此代码?
def coutning(list):
a= 0
b = 0
for elem in list:
for symbol in elem:
if elem.isdigit():
a+=1
if symbol.isalpha():
b+=1
return f' There is {a} numbers and {b} letters'
print(coutning(["1","7","8","9","10", "Hello my 543 friends"]))
您需要在第二个循环之前移动if elem.isdigit():
条件,并将第二个循环放入else:
。 因此,您首先检查元素是否显示数字,如果没有,则计算其中的字母。
def coutning(list):
a = 0
b = 0
for elem in list:
if elem.isdigit():
a += 1
else:
for symbol in elem:
if symbol.isalpha():
b += 1
return f' There is {a} numbers and {b} letters'
print(coutning(["1", "7", "8", "9", "10", "Hello my 543 friends"]))
印刷:
There is 5 numbers and 14 letters
如果你想把所有的数字和字母都算作符号,你可以这样做:
def coutning(list):
a,b = 0,0
for elem in ''.join(list):
a += elem.isdigit()
b += elem.isalpha()
return f' There is {a} numbers and {b} letters'
print(coutning(["1", "7", "8", "9", "10", "Hello my 543 friends"]))
输出:
There is 9 numbers and 14 letters
对于大家,我很抱歉你没有理解我的意思。 我说在这段代码中一切都很好,直到我达到数字(543)。 当我到达它时,我在调试器中看到我得到了 5,但是代码跳过了 isdigit 并转到了 isalpha。 我认为 5 不是 alpha,但它以这种方式工作。
def coutning(list):
a= 0
b = 0
for elem in list:
for symbol in elem:
if elem.isdigit():
a+=1
if symbol.isalpha():
b+=1
return f' There is {a} numbers and {b} letters'
print(coutning(["1","7","8","9","10", "Hello my 543 friends"]))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.