我試圖找到一種方法來在二維陣列中包含第二個變數。此外,我只想將第二個變數分配給已經有一個變數的單元格。例如,我從陣列開始:
seq = [[1, 0, 0, 0],[1, 2, 3, 4],[2, 0, 0, 0]]
我想為已經有一個的值分配第二個整數,使這個:
seq = [[(1, a), 0, 0, 0],[(1, b), (2, c), (3, d), (4, e)], [(2, f), 0, 0, 0]]
在其中我理想地想要一個回圈,我可以在其中使用規則選擇特定值。我不確定我是否可以將 0 保留在特定位置而不為它們分配第二個值,或者是否需要將陣列轉換為串列。我對python很陌生,通常使用Matlab。
uj5u.com熱心網友回復:
也許這樣的事情會奏效:
import string
from itertools import cycle
letters = cycle(string.ascii_lowercase)
seq = [[1, 0, 0, 0], [1, 2, 3, 4], [2, 0, 0, 0]]
for i, s in enumerate(seq):
seq[i] = [(k, next(letters)) if k > 0 else k for e, k in enumerate(s)]
print(seq)
>>> [[(1, 'a'), 0, 0, 0], [(1, 'b'), (2, 'c'), (3, 'd'), (4, 'e')], [(2, 'f'), 0, 0, 0]]
uj5u.com熱心網友回復:
嘗試:
values = list('abcdef')
result = list()
for row in seq:
result.append([(n, values.pop(0)) if n!=0 else 0 for n in row])
>>> result
[[(1, 'a'), 0, 0, 0],
[(1, 'b'), (2, 'c'), (3, 'd'), (4, 'e')],
[(2, 'f'), 0, 0, 0]]
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/384856.html
上一篇:反應:使用多個復選框過濾陣列串列
