我试图计算列表中的字符组合。在我的脚本中,我可以计算元组,但我不知道如何计算列表中的字符总数。如何在Python中将3个元组合在一起
这是我用过的脚本。
def count(num):
character = 0
for i in num:
character += 1
return character
count ('1234','1234',1234')
我的答案是3
我想告诉12.我怎么能这样做?
我试图计算列表中的字符组合。在我的脚本中,我可以计算元组,但我不知道如何计算列表中的字符总数。如何在Python中将3个元组合在一起
这是我用过的脚本。
def count(num):
character = 0
for i in num:
character += 1
return character
count ('1234','1234',1234')
我的答案是3
我想告诉12.我怎么能这样做?
def count(num):
total = 0
for i in num:
total += len(i)
return total
或者更短,更Python:
def count(num):
return sum(len(x) for x in num)
而且你需要与列表或元组参数,例如叫它count(('1234','1234','1234'))
您还可以在方法定义中添加一个星号(def count(* num)),使其能够以与您所做的相同的方式进行调用本来。
sum( map(len,num)) – mtadd
我喜欢詹姆斯的方法,因为它感觉更地道,但是这是一个功能性的方法是什么样子:
def count(num):
return sum(map(len, num))
如果你想通过调用count('1234', '1234', '1234')
,而不是count(('1234', '1234', '1234'))
工作,你可以使用def count(*num)
定义该功能。
最后,如果你想这两个电话的工作(和你确定原子类型是有史以来唯一一个字符串),你可以这样做:
def count(*num):
return sum(len(n) if isinstance(n, str) else count(*n) for n in num)
如果您需要的功能各种操作你可以使用下面的定义(只要mylist不是嵌套列表)。
def countchars(mylist):
return sum([len(item) for item in mylist])
或者,你可以在元组/列表合并在一起,并使用LEN()来获得合并后的元组/列表的长度。
'character + = len(i)'? – mgilson
此外,我怀疑你的代码_actually_给你一个3的答案......它看起来更像是因为你用3个参数调用count而只会给你一个'TypeError',并且它只需要1. – mgilson