'''
[[[[[[[[[[[[[[[[[[[[[[[[[[[[1]]]]]]]]]]]]]]]]]]]]]]]]]]]]
find 1
'''
key = 1
x = [[[[[[[[[[[[[[[[[[[[[[[[[[[[key]]]]]]]]]]]]]]]]]]]]]]]]]]]]
#len(x) -> 1
其實我的問題很簡單,但我無法解決這個問題......我應該用什么來解決它,我的意思是我應該使用遞回函式還是for回圈?
for i in range(len(x)):
for j in range(len(x)):
for k in range(len(x)):
for _ in range(len(x)):
for ...
uj5u.com熱心網友回復:
您可以使用以下方法執行此操作more_itertools
import more_itertools
key = 1
x = [[[[[[[[[[[[[[[[[[[[[[[[[[[[key]]]]]]]]]]]]]]]]]]]]]]]]]]]]
flattened_list = list(more_itertools.collapse(x))
print(flattened_list) # [1]
uj5u.com熱心網友回復:
這是您當前結構的非遞回方法:
def extract_list(l: list):
while True:
l = l.pop()
if not isinstance(l, list):
return l
x = [[[[[[[[[[[[[[[[[[[[[[[[[[[[1]]]]]]]]]]]]]]]]]]]]]]]]]]]]
print(extract_list(x)) # 1
uj5u.com熱心網友回復:
你也可以通過型別檢查來做到這一點
key = 1
x = [[[[[[[[[[[[[[[[[[[[[[[[[[[[key]]]]]]]]]]]]]]]]]]]]]]]]]]]]
def find_key(array):
if type(array) is list:
return find_key(array[0])
return array
print(find_key(x))
uj5u.com熱心網友回復:
你可以通過幾種方式做到這一點,但這里有一個使用遞回的解決方案:
x = [[[[[[[[[[[[[[[[[[[[[[[[[[[[1]]]]]]]]]]]]]]]]]]]]]]]]]]]]
def find_num(l):
if isinstance(inner := l[0], list):
return find_num(inner)
return inner
print(find_num(x))
1
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/524570.html
標籤:Python列表功能
