在 python
中,我得到了一个这样的数据。
persontel = ({'name':'lyli';'tel':'123'},{'name':'linlei';'tel':'125'},{'name':'lyli';'tel':'123'})
我怎么样为这样的数据去重呢?想达到的效果是,最后:
persontel = ({'name':'lyli';'tel':'123'},{'name':'linlei';'tel':'125'})
求大神指教。
在 python
中,我得到了一个这样的数据。
persontel = ({'name':'lyli';'tel':'123'},{'name':'linlei';'tel':'125'},{'name':'lyli';'tel':'123'})
我怎么样为这样的数据去重呢?想达到的效果是,最后:
persontel = ({'name':'lyli';'tel':'123'},{'name':'linlei';'tel':'125'})
求大神指教。
如果要保持有序的话, 可以这样, 但是效率不高.
这是改正后的数据.
persontel = ({'name':'lyli','tel':'123'},{'name':'linlei','tel':'125'}, {'name':'lyli','tel':'123'})
然后:
persontel = [ x for i,x in enumerate(persontel) if x not in persontel[:i] ]
我问过相似的问题,结果被人踩了好多遍,深知新手的不容易。后来自己找身边的人问出了解决办法,看你是新手,帮你一把吧!
首先,python没有这样的数据格式,
persontel = ({'name':'lyli';'tel':'123'},{'name':'linlei';'tel':'125'},{'name':'lyli';'tel':'123'})
我是这样实现的:
map
方法将persontel
中的元素转换成str
类型,并返回list
set
对上面的list
去重eval
函数将list
中各元素转换成python
的dict
类型list
类型的数据转换成tuple
类型代码如下:
persontel = ({'name':'lyli','tel':'123'},{'name':'linlei','tel':'125'},{'name':'lyli','tel':'123'})
persontel = tuple(map(eval,set(map(str,persontel))))
print persontel
ps:惭愧惭愧,此答案可以忽略,请参考Zhongwei Sun 的正解
4 回答4.4k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
1 回答3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
1 回答4.5k 阅读✓ 已解决
1 回答3.8k 阅读✓ 已解决
1 回答2.8k 阅读✓ 已解决
因为 dict 是 unhashable, 转换成 tuple 即可。