簡體   English   中英

計算嵌套列表中的元素

[英]Count elements in nested list

以下python代碼應該清楚我想要完成的任務。

# Say I have the following list and I want to keep count of 1's while going through each nested list
L = [[1,1,0,0,0,1],[1,1,0,0,0,0],[0,0,0,0,0,1],[1,1,1,1,1,1]]

# So I'd like to get a list containing [3, 5, 6, 12]
# I tried to find a compact way of doing this by mapping this list into a another list like such 
T = [L[:i].count(1) for i in range(len(L))]
# >>> [0, 0, 0, 0]


# But this doesn't work so how to count occurances for nested lists?
# Is there a compact way of doing this (maybe with Lambda functions)?

# I'd like to avoid using a function like:
def Nested_Count():
    Result = []
    count = 0
    for i in L:
        count += i.count(1)
        Result.append(count)
    return Result
# >>> [3, 5, 6, 12]

請告訴我是否可以使用更緊湊的代碼來執行此操作。

謝謝!

使用sum和列表理解。

L = [[1,1,0,0,0,1],[1,1,0,0,0,0],[0,0,0,0,0,1],[1,1,1,1,1,1]]
L2 = [sum(x) for x in L]
T = [sum(L2[:x+1]) for x in xrange(len(L2))]
[sum([x.count(1) for x in L[:i]]) for i in range(1, len(L) + 1)]

應該做你想做的事。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM