仅获得列表中的唯一项,并将其放入字典中以跟踪更改-Pandas Python

问题描述 投票:0回答:2

我有以下列表。

my_list = ['20/20', '30/30', '20/80', '120/120', '120/140', '165/165', '30/170', '165/175']

我想删除所有重复项,并希望将唯一项保留在列表中,并通过转换字典来跟踪它们。

例如,20/20应该更改为20并以{'20/20':20}的形式放入字典中,对于'30/30'更改为30并以{'30/30': 30}的形式放入字典中,但'20/80'则不应该” t为20,因为我之前在字典中有20,所以应该为80,并将其作为{'20/80':80}放在字典中。相同的过程适用于其余列表。

我的预期结果似乎像以下字典。

my_dict = {'20/20':20, '30/30': 30, '20/80':80, '120/120':120, '120/140':140, '165/165': 165, '30/170': 170, '165/175':175}

是否有任何简单且智能的方法?

python pandas list dictionary
2个回答
1
投票

列表理解应该足够了:

my_dict = dict((elem, elem.split('/')[1]) for elem in my_list)

结果:

{'20/20': '20', '30/30': '30', '20/80': '80', '120/120': '120', '120/140': '140', '165/165': '165', '30/170': '170', '165/175': '175'}

0
投票
my_list = ['20/20',  '30/30',  '20/80',  '120/120',  '120/140',  '165/165', '30/170',  '165/175']

dict = dict( (i,element[0] if element[0] == element[1] else element[1]) for element,i in zip([item.split('/') for
                                                                                              item in my_list
                                                                                  ],my_list) )
print(dict)
© www.soinside.com 2019 - 2024. All rights reserved.