Python 3.x 将字典映射到列表中包含元组的列

Python 3.x 将字典映射到列表中包含元组的列,python-3.x,pandas,list,tuples,Python 3.x,Pandas,List,Tuples,我在数据帧的每一行中都有一个元组列表。我试图将列表中元组的第一个元素应用于字典的值。我找到了正则表达式的方法,但是,它似乎不是编写代码的理想方法。我想知道是否有比我在Try#1中所做的更好的方法来处理它 列表理解在这里可能会有所帮助;此外,当其他数据结构嵌入其中时,效率也会受到一定程度的影响 df["score"] = [[(di[left], right) for left, right in entry]

我在数据帧的每一行中都有一个元组列表。我试图将列表中元组的第一个元素应用于字典的值。我找到了正则表达式的方法,但是,它似乎不是编写代码的理想方法。我想知道是否有比我在Try#1中所做的更好的方法来处理它


列表理解在这里可能会有所帮助;此外,当其他数据结构嵌入其中时,效率也会受到一定程度的影响

df["score"] = [[(di[left], right) 
                 for left, right in entry] 
                 for entry in df.score]
df


    id  text    score
0   1   test1   [(Math, 0.95)]
1   2   test2   [(Science, 0.1), (History, 0.2)]
2   3   test3   [(History, 0.3)]

它给了我
keyrerror:1
您是否使用共享的相同数据运行它?是的。我用你的代码和相同的数据重新运行了。但我重新启动了我的Jupyter笔记本,擦了擦。显然,记忆中有些东西是它引起了一个问题。它现在正在为这些数据工作。感谢您提供这样一个用字典处理元组映射的干净解决方案!很高兴它起作用了。别忘了投票并接受。干杯,伙计
df["score"] = [[(di[left], right) 
                 for left, right in entry] 
                 for entry in df.score]
df


    id  text    score
0   1   test1   [(Math, 0.95)]
1   2   test2   [(Science, 0.1), (History, 0.2)]
2   3   test3   [(History, 0.3)]