我有一个像下面的python字典
car_dict=
{
'benz': {'usa':876456, 'uk':965471},
'audi' : {'usa':523487, 'uk':456879},
'bmw': {'usa':754235, 'uk':543298}
}
我需要下面的输出
benz,876456,965471
audi,523487,456879
bmw,754235,543298
以及下面的排序形式
audi,523487,456879
benz,876456,965471
bmw,754235,543298
请帮助我获得两个输出
答案 0 :(得分:1)
您可以这样做:
car_dict= {
'benz': {'usa':876456, 'uk':965471},
'audi' : {'usa':523487, 'uk':456879},
'bmw': {'usa':754235, 'uk':543298}
}
cars = []
for car in car_dict:
cars.append('{},{},{}'.format(
car,
car_dict[car]['usa'],
car_dict[car]['uk']
))
cars = sorted(cars)
for car in cars:
print(cars)
结果
audi,523487,456879
benz,876456,965471
bmw,754235,543298
说明
遍历每辆车,并将型号,美国编号和英国编号存储在列表中。按字母顺序对列表进行排序。列出来。
答案 1 :(得分:1)
要打印数据
x_train = tfds.load('ucf101', split='train', shuffle_files=True, batch_size = 64)
def parser(x):
dim = x['video'][:,30:40, ...]
return dim, dim
x_train = x_train.map(parser)
...
history = model.fit(x_train,
epochs=100,
verbose=1,
callbacks=[cp_callback])
输出
# Use List comprehension to sorted list of values from car, USA, UK fields
data = [[car] + list(regions.values()) for car, regions in sorted(car_dict.items(), key=lambda x:x[0])]
for row in data:
print(*row, sep = ',')
说明
按汽车对物品排序
audi,523487,456879
benz,876456,965471
bmw,754235,543298
列表推导中的每个内部列表都是汽车,美国,英国的值
for car, regions in sorted(car_dict.items(), key=lambda x:x[0])
打印以逗号分隔的每一行
[car] + list(regions.values())
答案 2 :(得分:0)
您是要打印输出还是只是以更好的格式组织数据以进行分析。
如果是后者,我会用熊猫做以下事情
import pandas as pd
pd.DataFrame(car_dict).transpose().sort_index()
要以您希望的方式查看终端上的输出,
for index, row in pd.DataFrame(car_dict).transpose().sort_index().iterrows():
print('{},{},{}'.format(index, row['usa'], row['uk']))
将打印出来:
audi,523487,456879
benz,876456,965471
bmw,754235,543298
答案 3 :(得分:0)
在解决方案下方找到
car_dict = {
'benz': {'usa':876456, 'uk':965471},
'audi' : {'usa':523487, 'uk':456879},
'bmw': {'usa':754235, 'uk':543298}
}
keys = list(car_dict.keys())
keys.sort()
for i in keys:
print ( i, car_dict[i] ['usa'], car_dict[i] ['uk'])
答案 4 :(得分:0)
我喜欢@DarrylG给出的列表理解答案,但是在这种情况下,您实际上并不需要lambda表达式。
sorted()
默认情况下只会按键进行排序,因此您可以使用:
data = [[car] + list(regions.values()) for car, regions in sorted(car_dict.items())]
我也将做一个小的改动。如果要对区域顺序进行更明确的控制(或希望使用其他顺序,则可以将[car] + list(regions.values())
替换为[car, regions['usa'], regions['uk']]
,如下所示:
data = [[car, regions['usa'], regions['uk']] for car, regions in sorted(car_dict.items())]
当然,这意味着如果您添加更多区域,则必须更改此设置,但我更喜欢显式设置顺序。