Python删除重复的值

时间:2016-07-07 14:45:15

标签: python-3.x

我有这样的字典:

{ key1 : "1", key1 : "2", key1 : "3", key1 : "1", key1 : "2"
  key2 : "1", key2 : "1", key2 : "1", key2 : "1", key2 : "1"}

我想仅为key1删除相等的值:

{ key1 : "1", key1 : "2", key1 : "3",
  key2 : "1", key2 : "1", key2 : "1", key2 : "1", key2 : "1"}

有可能吗?我用这段代码试了一下:

for i in dict.keys():
   if dict.values().count(dict[i]) > 1:
      del dict[i]

但它没有用。

1 个答案:

答案 0 :(得分:-1)

字典中的每个键都必须是唯一的。如果您尝试创建一个具有重复键的键,它只会记住其中一个键。例如:

key1, key2 = 1, 2

d = { key1 : "1", key1 : "2", key1 : "3", key1 : "1", key1 : "2",
      key2 : "1", key2 : "1", key2 : "1", key2 : "1", key2 : "1"}

print(d)
# {1: '2', 2: '1'}

这是您需要解决的第一个问题。但是,您可以在数组中存储匹配键的每个值:

key1, key2 = 1, 2

d = {key1 : ["1", "2", "3", "1", "2"],
     key2 : ["1", "1", "1", "1", "1"]}

print(sorted(list(set(d[key1]))))
# ['1', '2', '3']