我试图用另一个子列表替换2d列表中的值(创建列表的3d列表)。下面基本上是我想要做的,除了我知道你只能使用append将值添加到列表,而不是另一个子列表。
def make_new_array(array):
for r_index, row in enumerate(array):
for c_index, number in enumerate(row):
if number%10==0:
array[r_index][c_index].append([10,20,30])
else:
array[r_index][c_index].append([40])
return array
例如
array=[[10],[15, 20]]
我希望结果看起来像
make_new_array(array)=[[[10,20,30]],[[40],[10,20,30]]]
答案 0 :(得分:1)
格雷格! 你混淆了标志!=和==。此外,你没有附加任何东西。看,这是解决问题的工作代码:
array=[[10], [15, 20]]
for r_index, row in enumerate(array):
for c_index, number in enumerate(row):
if number % 10 == 0:
array[r_index][c_index] = [10, 20, 30]
else:
array[r_index][c_index] = [40]
print(array) #array = [[[10,20,30]],[[40],[10,20,30]]]
祝你好运!
答案 1 :(得分:0)
您想要替换a
中的值,而不是附加到它们。这是一个简洁的版本:
for i,j,t in ((i,j,x%10) for i,sl in enumerate(a) for j,x in enumerate(sl)):
a[i][j] = [40] if t else [10,20,30]
答案 2 :(得分:-1)
array[r_index] = newList
array[r_index] = [[1,2,3],[2,3,4],[3,4,5]]