删除 python 中重复的列表值
deleting duplication of list value in python
我有一个列表,
list1 = [[1,4,0,0],[2,0,1,0],[9,8,4,0],[0,2,5,3]]
这个列表是这样的;
list1 =[[d[x][y] for y in key] for x in key]
所以当我使用 writer.writerows(list1)
编写此 list1
时,其 excel table 显示为:
1 4 0 0
2 0 1 0
9 8 4 0
0 2 5 3
如你所知,它不是对称的,我做了一个新列表,
list2 = [[d[x][y]+d[y][x] for y in key] for x in key]
我本可以在 excel 文件中制作此 table:
2 6 9 0
6 0 9 2
9 9 8 5
0 2 5 6
但是问题来了。我必须制作一个文件,如果 x==y
,在 d[x][y]
中,则不应计算其值。所以我希望我的结果是这样的:
1 6 9 0
6 0 9 2
9 9 4 5
0 2 5 3
仅供参考,我用过:
d = defaultdict(lambda:defaultdict(int))
keys = sorted(d)
我该如何处理这个问题?
你可以使用一个双列表推导式,和一个三元运算符来select 什么时候添加元素:
代码:
list2 = [[list1[x][y] + list1[y][x] if x != y else list1[x][y]
for x in range(len(list1))] for y in range(len(list1[0]))]
测试代码:
list1 = [[1, 4, 0, 0], [2, 0, 1, 0], [9, 8, 4, 0], [0, 2, 5, 3]]
list2 = [[list1[x][y] + list1[y][x] if x != y else list1[x][y]
for x in range(len(list1))] for y in range(len(list1[0]))]
print(list2)
结果:
[[1, 6, 9, 0], [6, 0, 9, 2], [9, 9, 4, 5], [0, 2, 5, 3]]
我有一个列表,
list1 = [[1,4,0,0],[2,0,1,0],[9,8,4,0],[0,2,5,3]]
这个列表是这样的;
list1 =[[d[x][y] for y in key] for x in key]
所以当我使用 writer.writerows(list1)
编写此 list1
时,其 excel table 显示为:
1 4 0 0
2 0 1 0
9 8 4 0
0 2 5 3
如你所知,它不是对称的,我做了一个新列表,
list2 = [[d[x][y]+d[y][x] for y in key] for x in key]
我本可以在 excel 文件中制作此 table:
2 6 9 0
6 0 9 2
9 9 8 5
0 2 5 6
但是问题来了。我必须制作一个文件,如果 x==y
,在 d[x][y]
中,则不应计算其值。所以我希望我的结果是这样的:
1 6 9 0
6 0 9 2
9 9 4 5
0 2 5 3
仅供参考,我用过:
d = defaultdict(lambda:defaultdict(int))
keys = sorted(d)
我该如何处理这个问题?
你可以使用一个双列表推导式,和一个三元运算符来select 什么时候添加元素:
代码:
list2 = [[list1[x][y] + list1[y][x] if x != y else list1[x][y]
for x in range(len(list1))] for y in range(len(list1[0]))]
测试代码:
list1 = [[1, 4, 0, 0], [2, 0, 1, 0], [9, 8, 4, 0], [0, 2, 5, 3]]
list2 = [[list1[x][y] + list1[y][x] if x != y else list1[x][y]
for x in range(len(list1))] for y in range(len(list1[0]))]
print(list2)
结果:
[[1, 6, 9, 0], [6, 0, 9, 2], [9, 9, 4, 5], [0, 2, 5, 3]]