首页 > 解决方案 > 替换多维数组中的字符串

问题描述

我有这个数组,每个数组有 4 个元素。我想用空字符串替换之前的相同元素。

arr1 = [
    ["Ford", "Fiesta", "Manual", "$ 120,000,000"],
    ["Ford", "Fiesta", "Manual", "$ 134,000,000"],
    ["Ford", "Fiesta", "Automatic", "$ 140,000,000"],
    ["Ford", "Fiesta", "Automatic", "$ 150,000,000"],
    ["Ford", "Focus", "Manual", "$ 330,000,000"],
    ["Ford", "Focus", "Manual", "$ 335,000,000"],
    ["Ford", "Focus", "Manual", "$ 350,000,000"],
    ["Ford", "Focus", "Automatic", "$ 360,000,000"],
    ["VW", "Golf", "Manual", "$ 350,000,000"],
    ["VW", "Golf", "Automatic", "$ 370,000,000"]
];

所以结果会是这样的:

[
    ["Ford", "Fiesta", "Manual", "$ 120,000,000"],
    ["", "", "", "$ 134,000,000"],
    ["", "", "Automatic", "$ 140,000,000"],
    ["", "", "", "$ 150,000,000"],
    ["", "Focus", "Manual", "$ 330,000,000"],
    ["", "", "", "$ 335,000,000"],
    ["", "", "", "$ 350,000,000"],
    ["", "", "Automatic", "$ 360,000,000"],
    ["VW", "Golf", "Manual", "$ 350,000,000"],
    ["", "", "Automatic", "$ 370,000,000"]
];

我试图创建包含所有唯一元素的新数组,并将其循环,然后将其附加到第三个数组中

arr2 = ["Ford", "Fiesta", "Focus", "Manual", "Automatic", "VW", "Golf"],
arr3 = []
print('-----------------------------------')
for x in arr1 :
  print("X[0] ", x[0])
  print("X[1] ", x[1])
  print("X[2] ", x[2])
  print("X[3] ", x[3])
  if(x[0] == arr1[0][0]):
    arr3.append("")
    if(x[1] == arr1[0][1]):
      arr3.append("")
      if(x[2] == arr1[0][2]):
        arr3.append("")
      if(x[2] != arr1[0][2]):
        arr3.append(x[2])
  arr3.append(x[3])

但我的结果只对第二行正确:

['', '', '', '$ 120,000,000', 
'', '', '', '$ 134,000,000', 
'', '', 'Automatic', '$ 140,000,000', 
'', '', 'Automatic', '$ 150,000,000', 
'', '$ 330,000,000', '', '$ 335,000,000', 
'', '$ 350,000,000', '', '$ 360,000,000', 
'$ 350,000,000', '$ 370,000,000']

有人可以告诉我我的错误在哪里吗?提前致谢

标签: pythonarrays

解决方案


通过创建一个新数组,您可以将第一行添加到其中,因为您知道第一行不会被更改。然后循环第一个数组以检查每一行并将它们添加到新数组中。

像这样的东西应该工作:

arr2 = []
arr2.append(arr1[0])
for i in range(0,len(arr1)-1):
    tmp = []
    for v in range(len(arr1[i])):
        if arr1[i+1][v] == arr1[i][v]:
            tmp.append("")
        else:
            tmp.append(arr1[i+1][v])
    arr2.append(tmp)

print(arr2)

推荐阅读