我正在尝试编写一个函数,该函数将创建一个字典,给定值和键作为元组的元组。 例如
long2wide ( ((" apple ","red "),(" banana "," yellow "),(" banana "," green "),
(" apple "," green "),(" cherry "," red "))
, (" fruit ", " colour ") )
返回
{'fruit': ['apple', 'banana', 'banana', 'apple', 'cherry'], 'colour': ['red', 'yellow', 'green', 'green', 'red']}
以下是我现在掌握的(错误)代码:
def long2wide(data, headers):
dictionary = {}
for entry in headers:
for i in range(len(data)): #Iterate through each row of data
for j in range(len(data[0])): #Iterate through each column of data
dictionary[(headers)] = data[i][j]
return dictionary
我当前的输出是{'fruit':'red','color':'red'}
:(
如果有人能帮助调试/解决此问题,我将不胜感激。谢谢
您可以将元组加载到数据帧中,然后再重新加载到字典中
输出:
或者,您可以直接将数据键值对加载到字典中,并将标题用作索引
输出:
我就是这样做的:
输出为
{' fruit ': [' apple ', ' banana ', ' banana ', ' apple ', ' cherry '], ' colour ': ['red ', ' yellow ', ' green ', ' green ', ' red ']}
当标题数量未定义时,也可以使用此代码
这是通过列表理解完成的。我们为标题中的每个项目创建一个列表。然后,我们循环遍历数据,并根据头的计数,在每个数据元组中添加一个元素,这意味着取决于我们迭代遍历的头
如果您真的喜欢列表理解,您可以将其进一步缩小为:
但我不推荐这个,因为它会变得凌乱和难以阅读
对于任意数量的字段,也许
或者,如果您喜欢一行:
其中
values
是您的第一个列表names
是您的第二个列表相关问题 更多 >
编程相关推荐