python 怎麼把大列表裡的小列表處理掉?

時間 2021-06-02 06:23:55

1樓:

其實把[[1, 1, 1, 1, 1, 1, 1, 1], [2, 2, 2, 2, 2, 2, 2, 2], [3, 3, 3, 3, 3, 3, 3, 3], [4, 4, 4, 4, 4, 4, 4, 4]]這個大list變成[1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4]這樣的小list;算是列表的一種降維。有個神奇的函式剛好可以滿足這個需求--------sum()

oldlist = [[1, 1, 1, 1, 1, 1, 1, 1], [2, 2, 2, 2, 2, 2, 2, 2], [3, 3, 3, 3, 3, 3, 3, 3], [4, 4, 4, 4, 4, 4, 4, 4]]

newlist = sum(oldlist ,)乙個sum就搞定了。

這是help(sum)的解釋。

2樓:

另乙個差不多的回答

3樓:

不要只看眼前的模式,想想怎麼處理普遍模式,如果小列表中再包含乙個列表要怎麼處理?

自然而然,想到用遞迴。

# -*- coding: utf-8 -*-def flatten(nums):

return res

if __name__ == '__main__':

nums_1 = [[1, 1, 1, 1, 1, 1, 1, 1], [2, 2, 2, 2, 2, 2, 2, 23, 3, 3, 3, 3, 3, 3, 3], [4, 4, 4, 4, 4, 4, 4, 4]]

nums_2 = [0, 1, [2, 2, [3, 4]]]print(flatten(nums_1))print(flatten(nums_2))

4樓:

import numpy as np

arr1 = [[1,2],[1,2]]

arr2 = list(np.array(arr1).flatten())

Python如何使乙個列表裡的元素兩兩相加,例如a 1,2,3,4 ,使裡面數字兩兩相加?

參考python cookbook 4.9章 排列組合的迭代 from itertools import combinationsa 1,2,3,4 result list for c in combinations a,2 也許 a 1,2,3,4 result foriina forjin a ...

python巢狀列表中,怎麼對滿足條件的進行分類合計?

夢魘 這裡有乙個演算法O N 複雜性 res tmp for x in lst 結果 In 133 res Out 133 orb 2 3 4 obx 2 3 4 orb 2 3 4 obx 1 2 3 obx 1 2 3 obx 1 2 3 方法二 你可以用itertools.groupby im...

Python怎麼讓乙個列表中的數字同時乘另乙個數 並生成新的列表?

盜藍 列表解析 a 1,2 3,4 5 b 10c i b foriina 新的列表,速度更快 函式式程式設計 高階函式 map a 1,2,3,4,5 b 10 c generator map lambda a a b,a 生成器,可迭代物件,可以比列表解析有更多更靈活的表達 c list c g...