在函式 `mix(L,n)` 中,有沒有辦法使用串列理解用一行替換 `for...` 和 `L...` 兩行?`L = PS(L)` 覆寫舊值并從 `PS(L)` 中獲取新串列。所以,我檢查了`L = [PS(L) for i in range (n)]` 不起作用,因為它每次都會添加`PS(L)`。
L = [1,2,3,4,5,6]
def PS(L):
m1 = L[:len(L)//2]
m2 = L[len(L)//2:]
Lf = [i for i in zip(m1, m2) for i in i]
return Lf
def mix(L,n):
for i in range (n):
L = PS(L)
return L
print(mix(L,2))
提前致謝!
亞歷克斯
uj5u.com熱心網友回復:
return [PS(L) for i in range(n)]如果您嘗試追加,則可以使用。
但是你到底想做mix()什么?因為您的代碼只是L用PS(L)n 次替換并發送回一個元組。
uj5u.com熱心網友回復:
L = [1, 2, 3, 4, 5, 6]
def PS(L):
m1 = L[:len(L) // 2]
m2 = L[len(L) // 2:]
L = [i for i in zip(m1, m2) for i in i]
return L
def mix(n):
global L
L = [PS(L) for i in range(n) if i not in L]
return L
print(mix(2))
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/435243.html
上一篇:為什么這個串列總是搶到第一項?
下一篇:如何匹配大尺寸的字串串列
