python 如何將乙個多維列表中的元素乙個個按順序按順序取出?

時間 2021-05-09 20:44:03

1樓:navegador

首先宣告,這種問題的正統解法是使用numpy

下面是不考慮效率的通用版本,滿足 "python自帶" 這個條件, 並且可自定義過濾條件與 get函式

import json

import ast

def flat(nest,cond_func=lambda r:type(r)==ast.Num,get_func=lambda r:r.n):

cd = json.dumps(nest)

t = ast.parse(cd)

g = ast.walk(t)

arr = list(g)

arr = list(filter(cond_func,arr))

arr = list(map(get_func,arr))

return(arr)

arr = [1, [4], 2, [3, [5, 6]]]

flat(arr)

# [1, 2, 4, 3, 5, 6]

cubic255, 0, 0], [0, 255, 0], [0, 0, 255255, 0, 0], [0, 255, 0], [0, 0, 255255, 0, 0], [0, 255, 0], [0, 0, 255]]

]flat(cubic)

#[255, 0, 0, 0, 255, 0, 0, 0, 255, 255, 0, 0, 0, 255, 0, 0, 0, 255, 255, 0, 0, 0, 255, 0, 0, 0, 255]

arr = [1, ["a"], 2, ["b", [5, "c"]]]

flat(arr,cond_func=lambda r:type(r)==ast.Str,get_func=lambda r:r.s)

#['a', 'b', 'c']

2樓:呆坐的熊

defflaten2

(array

):res=

foritem

inarray:if

isinstance

(item

,list

):res

.extend

(flaten

(item

))else

:res.(

item

)return

resprint

(flaten2(a

))菜雞遞迴版本↑,順便膜拜大佬的生成器版本↓。

defflaten

(array

):for

item

inarray:if

isinstance

(item

,list

):yield

from

flaten

(item

)else

:yield

item

print

(list

(flaten(a)))

python如何將乙個列表為成績,另乙個列表為分數,將其組合起來的成績和分數按排名高低,輸出來呢

建議使用 Pandas 例如 import pandas aspd course 大學英語A1 高等數學 大學生職業規劃 經濟學 lst df pd.DataFrame lst index course df grade 學分績點 大學英語A1 85 2.0 3.5高等數學 77 0.5 2.7大學...

乙個列表A 2,3,4 ,Python如何將其轉換成B 2,3 , 3,4 , 4,2 ?

何谷目 這不就是乙個組合問題嘛 from itertools import combinationsa 2,3 4 b list combinations a r 2 print b 2gua 來兩個。list zip A A 1 A 1 OR A i A 0 ifi len A 1else A i...

Python如何將字串式列表轉化為可以操作的列表

海闊and天空 方式1 給a加上引號,然後使用eval轉化格式不就行啦,注意字串外雙內單或外單內雙 str1 1,2,a 2,4 6 print str1 print type str1 list1 eval str1 print list1 print type list1 檢視物件型別 執行結果...