有没有办法把两个键组合成一个?python

2024-06-26 14:01:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我有键NameId和{}。有没有办法使NameId的值成为键,而Major是字典中的值?在

Name     Id       Major
Joe      001      Math
Kyle     002      Coms
Lisa     003      Engr
Mia      004      Art
Nick     005      Engr
Olga     006      Math

{'Joe 001': Math, 'Kyle 002': Coms, 'Lisa 003': Engr, etc.}

我试着从一个excel文件这样做,所以我不想手动输入所有我正在练习的名字。有没有办法组合钥匙?在

你能帮个忙吗?或者帮我联系一些可能有用的东西吗?在


Tags: nameid字典mathnickjoelisakyle
3条回答

您可以通过列表理解列出所需的列表:

d2=[
{'Name': 'Joe', 'Id': '001',  'Major': 'Math'},
{'Name': 'Kyle', 'Id': '002',  'Major': 'Coms'}
]
d3={x['Name']+" "+x['Id'] : x['Major'] for x in d2}

print (d3)

#{'Joe 001': 'Math', 'Kyle 002': 'Coms'}

正如用户roganjosh提到的,最好的方法是创建元组键。在

这是通过在行上循环并用这个添加到dict中来完成的。在

my_dict = {}
for row in rows:
    my_dict[(row.Name, row.Id)] = row.Major

不要只将它们附加为字符串。由于名称和标识彼此唯一,因此不能保证它们的连接也是唯一的。前任。姓名:joe0 Id:01和姓名:joe Id:001连接时相同。为了安全起见,将它们保存为元组。在

假设数据在熊猫.数据帧,您可以更改数据并使用pandas.DataFrame.to_dict。例如:

df['Key']=df['Name']+df['Id'] #combine the two columns you want to make keys
df=df.drop(['Name','Id'],axis=1).set_index('Key').T.to_dict('list')

在合并了这两列之后,我将Key设置为index,然后进行转置。这将从索引中删除列名。然后我把它转换成字典。在

相关问题 更多 >