如何用另一个列表替换列表列表中的值?

时间:2014-06-30 19:23:10

标签: python list

我试图用另一个子列表替换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]]]

3 个答案:

答案 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]]