python - 替换多维数组中的字符串
问题描述
我有这个数组,每个数组有 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']
有人可以告诉我我的错误在哪里吗?提前致谢
解决方案
通过创建一个新数组,您可以将第一行添加到其中,因为您知道第一行不会被更改。然后循环第一个数组以检查每一行并将它们添加到新数组中。
像这样的东西应该工作:
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)
推荐阅读
- php - MySQL 基于 2 列顺序拆分结果
- python-3.x - Tkinter在Button1中捕获两个不同按钮的位置单击并释放
- java - 如何检查二维数组是否为拉丁文
- vba - 无法使用 VBA 在 Solver 中设置整数约束
- r - 将 xts 转换为 tibble 的最佳方法是什么
- java - HTML 内容损坏
- apache-kafka - 为什么 Apache Kafka 不支持临时主题?
- javascript - Javascript querySelector 获取值条件
- php - Laravel Route::current() 返回 null
- perl - Perl 语法(替换 'defined(@array')