回答
a = [[1,2],[3,4],[10,3,8]]
print(sum(map(len, a)))
輸出
7
這可以寫爲一個發電機表達,這樣
print(sum(len(item) for item in a))
這將工作,即使對於多級嵌套列表的最簡單的方法,是這樣的
def get_size(current_item):
if isinstance(current_item, list):
return sum(get_size(item) for item in current_item)
else:
return 1
a = [[1,2],[3,4],[10,3,8],[[1, 2, 3], [2, 3]]]
print get_size(a) # 12
請注意,如果您的列表是多層次的,這將無法正常工作。在這種情況下,您需要使用遞歸解決方案。 –
@adsmith同意,但OP說,只是'列表清單' – thefourtheye
事實上,由於提問者想要計算列表中的元素,然後遞歸通過任意數目的列表級別將給出錯誤的答案列表更深層次。這是一個問題,你是否想讓[[[1,2]]]的回答爲1(列表中元素的數量:這個元素恰好是列表)或2任何級別的嵌套列表中的元素數量)。 –
您可以總結的長度(如@thefourtheye建議),或遍歷所有元素,並計算:
sum(len(b) for b in a)
sum(1 for b in a for c in b)
第一種方法顯然是更好的,但第二個是用於證明一些事情你可以做的很好與列表解析,也將工作在一個更一般的結構,迭代迭代(其中沒有__len__
定義)。
)對於可迭代的iterable,你可能想用'def mylen(iterable)'來代替'len'的使用:try:return len(iterable ),除了TypeError:return sum(1代表可迭代中的x)'。也就是說,儘可能快地爲迭代操作,否則減慢。 –
對於學術而言,如果你的列表是不止一個級別深度(例如[ [1,2,3], [4,5,[6,7,8]]]
,你的元素之一包含一個列表),你想要做的事,如:
def count_elements(target):
count = 0
for element in target:
if type(element) is list:
count += count_elements(element)
else:
count += 1
return count
但問題描述通過OP更容易解決其他答案之一。只要提到這些解決方案不容易擴展。
def myLen(L):
if not L:
return 0
elif not isinstance(L[0], list):
return 1 + myLen(L[1:])
else:
return myLen(L[0]) + myLen(L[1:])
輸出:
>>> myLen([[1,2],[3,4],[10,3,8]])
7
list_count = 0
mainList = [[1,2],[3,4],[10,3,8]]
for inner_list in mainList:
list_count += len(inner_list)
print(list_count)
- 1. 計數列表元素
- 2. 計算列表中的元素python
- 3. 的Python:將計算列表元素
- 4. 按元素列表列出的元素列表python
- 5. 如何統計python列表中的列表元素
- 6. 計數元素=「」在元組列表的列表內
- 7. 計數列表中的元素數量
- 8. 的Python:計數,直到在列表元素是一個元組
- 9. 遞歸列表中的元素計數
- 10. 每個子列表的計數元素
- 11. 計算列表中的正數元素
- 12. Haskell計數列表中的元素
- 13. python計數器列表的列表?
- 14. 替換Python列表元素
- 15. 跳過列表元素 - Python
- 16. 集團Python列表元素
- 17. Python覆蓋列表元素
- 18. 使用Python列表解析計算列表中的正整數元素
- 19. 包含列表元素的列表的列表中的元素列表
- 20. 在Prolog中計數子列表元素
- 21. Python中的列表中的元素計數
- 22. python中的子列表元素的計數和追加
- 23. Python:當列表是元組中元素時的列表操作
- 24. Python:從列表中計數元音
- 25. 計算在Python中包含元素的列表數量
- 26. Python的 - 在詞典列表特定鍵計數元素
- 27. python:排序列表中的一系列元素列表
- 28. 列表元素
- 29. 在Python中計數多個列表元素3
- 30. 檢查列表中的元素是否存在於python列表的元素中
對於多級深'LEN(STR(A).strip( '[]')分割( ''))'編輯我嘗試在這裏:http://ideone.com/gzpt65 –
爲您的列表:http://ideone.com/U1f93P –