我試圖計算列表中的字符組合。在我的腳本中,我可以計算元組,但我不知道如何計算列表中的字符總數。如何在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