社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

如何在python中根据字典键获取唯一的数据

Soubhagya Pradhan • 5 年前 • 747 次点击  
  [
    {'id': 589, 'series': 17, 'job_id': 19103},
    {'id': 590, 'series': 17, 'job_id': 19103},
    {'id': 584, 'series': 18, 'job_id': 19103},
    {'id': 585, 'series': 18, 'job_id': 19103},
    {'id': 597, 'series': 18, 'job_id': 19103},
    {'id': 598, 'series': 18, 'job_id': 19193},
    {'id': 584, 'series': 19, 'job_id': 19103},
    {'id': 585, 'series': 19, 'job_id': 19103},
    {'id': 598, 'series': 19, 'job_id': 19193},
    {'id': 584, 'series': 20, 'job_id': 19103},
    {'id': 585, 'series': 20, 'job_id': 19103}
  ]

预期产量

  [
    {'id': 590, 'series': 17, 'job_id': 19103},
    {'id': 597, 'series': 18, 'job_id': 19103},
    {'id': 584, 'series': 19, 'job_id': 19103},
    {'id': 584, 'series': 20, 'job_id': 19103},
  ]

在这个python字典中,如何根据系列获得唯一的数据??

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/30646
 
747 次点击  
文章 [ 2 ]  |  最新文章 5 年前
Mauro Baraldi
Reply   •   1 楼
Mauro Baraldi    5 年前

遍历列表并将找到的每个第一个项添加到空列表中。

若要检查该值是否已找到,请将迭代中的当前项与查找列表进行比较。

uniq = []
found = []

for item in list_of_dictionaries:
    if item['series'] not in found:
        found.append(item['series'])
        uniq.append(item)

print(uniq)

关于这种方法的一些注意事项:

  • 它忽略了其他数据(键)。
  • 它正在获取列表的第一个匹配项。
vash_the_stampede
Reply   •   2 楼
vash_the_stampede    5 年前

这将为您生成独特的词典,但不清楚 id 你想从每一个都没有提到你是如何决定第二选择的。

d2 = {i['series']: i for i in d}
d3 = list(d2.values())
[{'id': 590, 'series': 17, 'job_id': 19103}, {'id': 598, 'series': 18,
'job_id': 19193}, {'id': 598, 'series': 19, 'job_id': 19193}, {'id':
585, 'series': 20, 'job_id': 19103}]