示例:我有這個串列 [2,3,[1,2]],我希望我的最終串列是 [2,3,1,2]。
但我也有這些型別的串列,[1,(2,[2,3])],我需要以這種形式 [1,2,3,2,3] 保留它。
有誰知道如何做到這一點。這將是一個很大的幫助。
謝謝
uj5u.com熱心網友回復:
因此,如果我理解正確,您要做的是按順序創建串列的所有元素及其子串列的串列?坦率地說,這聽起來是個糟糕的主意,但通過遞回是完全可行的:
def elementlist(input, output = []):
for element in input:
if not isinstance(element,(tuple,list)):
output.append(element)
else:
elementlist(element,output)
return output
list1 = [1,(2,[2,3,(2,3)])]
output = elementlist(list1)
print(output)
該解決方案的基本思想是遍歷串列,將其元素添加到輸出串列中,除非它是串列或元組,在這種情況下,它將被發送到更深的遞回級別以獲取其各個元素。
uj5u.com熱心網友回復:
您可以使用tryandexcept而不是使用條件和型別檢查 -
def recur(t):
try:
for x in t:
yield from recur(x)
except:
yield t
print(list(recur([1,(2,[2,3])])))
[1,2,2,3]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/455698.html
上一篇:如何計算這個遞回函式的T(n)?
下一篇:列印素數的程式
