我有一个字典,上面写着这样的信息;
Comp [[' 1992', ' 1992', ' 110.0'], [' 1992', ' 1993', ' 170.0'], [' 1993', ' 1993', ' 200.0']]
Non-Comp [[' 1990', ' 1990', ' 45.2'], [' 1990', ' 1991', ' 64.8'], [' 1990', ' 1993', ' 37.0'], [' 1991', ' 1991', ' 50.0'], [' 1991', ' 1992', ' 75.0'], [' 1991', ' 1993', ' 25.0']]
这是字典的样子
dict = {
'Comp': [
[' 1992', ' 1992', ' 110.0'],
[' 1992', ' 1993', ' 170.0'],
[' 1993', ' 1993', ' 200.0']
],
'Non-Comp': [
[' 1990', ' 1990', ' 45.2'],
[' 1990', ' 1991', ' 64.8'],
[' 1990', ' 1993', ' 37.0'],
[' 1991', ' 1991', ' 50.0'],
[' 1991', ' 1992', ' 75.0'],
[' 1991', ' 1993', ' 25.0'],
[' 1992', ' 1992', ' 55.0'],
[' 1992', ' 1993', ' 85.0'],
[' 1993', ' 1993', ' 100.0']
]
}
我目前正在尝试通过for循环读取数据,但是我不知道将数据从一个键的值切到另一个键的位置。
for k,v in dict.items():
for i in v:
print(i)
这将打印出来;
[' 1992', ' 1992', ' 110.0'] # Comp
[' 1992', ' 1993', ' 170.0'] # Comp
[' 1993', ' 1993', ' 200.0'] # Comp
[' 1990', ' 1990', ' 45.2'] # Non-Comp
[' 1990', ' 1991', ' 64.8'] # Non-Comp
[' 1990', ' 1993', ' 37.0'] # Non-Comp
[' 1991', ' 1991', ' 50.0'] # Non-Comp
[' 1991', ' 1992', ' 75.0'] # Non-Comp
我该怎么做才能区分两个值之间的差异,以便我可以对它们进行计算?
答案 0 :(得分:3)
如评论中提到的人,请使用k
:
my_dict = {
'Comp': [
[' 1992', ' 1992', ' 110.0'],
[' 1992', ' 1993', ' 170.0'],
[' 1993', ' 1993', ' 200.0']
],
'Non-Comp': [
[' 1990', ' 1990', ' 45.2'],
[' 1990', ' 1991', ' 64.8'],
[' 1990', ' 1993', ' 37.0'],
[' 1991', ' 1991', ' 50.0'],
[' 1991', ' 1992', ' 75.0'],
[' 1991', ' 1993', ' 25.0'],
[' 1992', ' 1992', ' 55.0'],
[' 1992', ' 1993', ' 85.0'],
[' 1993', ' 1993', ' 100.0']
]
}
data = []
for k, rows in my_dict.items():
for row in rows:
item = (k, row[0], row[1], row[2])
data.append(item)
最好也不要使用dict
作为变量名,因为这样会覆盖内置的dict
关键字,这意味着以后如果想使用它,可能会在代码中遇到问题。
我们可以使用元组拆包使创建item
变量更加整洁:
data = []
for k, rows in my_dict.items():
for row in rows:
item = (k, *row) # unpacks the rows variable as individual parts into item
data.append(item)
然后,我们就可以使用列表理解作为一个整体来完成整个工作:
data = [(k, *row) for k, rows in my_dict.items() for row in rows]
答案 1 :(得分:0)
作为您的预期结果,让我们尝试以下代码:
for key in yourdict.keys():
for item in yourdict[key]:
print(item)
结果是
[' 1992', ' 1992', ' 110.0']
[' 1992', ' 1993', ' 170.0']
[' 1993', ' 1993', ' 200.0']
[' 1990', ' 1990', ' 45.2']
[' 1990', ' 1991', ' 64.8']
[' 1990', ' 1993', ' 37.0']
[' 1991', ' 1991', ' 50.0']
[' 1991', ' 1992', ' 75.0']
[' 1991', ' 1993', ' 25.0']
[' 1992', ' 1992', ' 55.0']
[' 1992', ' 1993', ' 85.0']
[' 1993', ' 1993', ' 100.0']
如您所愿。