Python 如何比较有序字典键?
我有下列词典Python 如何比较有序字典键?,python,dictionary,Python,Dictionary,我有下列词典 {"data":[{"shift":"day","bus_type":"ac","seat_price_for_travel_agent":"900","seat_price_for_user":"1000","seat_price_for_foreigner":"1100&
{"data":[{"shift":"day","bus_type":"ac","seat_price_for_travel_agent":"900","seat_price_for_user":"1000","seat_price_for_foreigner":"1100"},
{"shift":"night","bus_type":"deluxe","seat_price_for_travel_agent":"900","seat_price_for_user":"1000","seat_price_for_foreigner":"1100"}]}
我在比较日班和夜班时遇到问题?
有没有办法比较这些变化。
抱歉,如果问题似乎不相关。如果要成对比较相同键的值,可以使用以下方法开始:
dict1, dict2 = {"data":[{"shift":"day","bus_type":"ac","seat_price_for_travel_agent":"900","seat_price_for_user":"1000","seat_price_for_foreigner":"1100"},
...: {"shift":"night","bus_type":"deluxe","seat_price_for_travel_agent":"900","seat_price_for_user":"1000","seat_price_for_foreigner":"1100"}]}['data']
[ (k,dict1[k]==dict2[k]) for k in dict1.keys()]
Out:
[('shift', False),
('bus_type', False),
('seat_price_for_travel_agent', True),
('seat_price_for_user', True),
('seat_price_for_foreigner', True)]
如果您确定DICT具有相同的键,则可以按如下方式成对比较:
dict1, dict2 = {"data":[{"shift":"day","bus_type":"ac","seat_price_for_travel_agent":"900","seat_price_for_user":"1000","seat_price_for_foreigner":"1100"},
...: {"shift":"night","bus_type":"deluxe","seat_price_for_travel_agent":"900","seat_price_for_user":"1000","seat_price_for_foreigner":"1100"}]}['data']
[ (k,dict1[k]==dict2[k]) for k in dict1.keys()]
Out:
[('shift', False),
('bus_type', False),
('seat_price_for_travel_agent', True),
('seat_price_for_user', True),
('seat_price_for_foreigner', True)]
在字典上迭代与在列表上迭代几乎相同。您可以使用
zip()。分别使用.items()
、.keys()
或.values()
dic = {
"data":
[{"shift":"day","bus_type":"ac","seat_price_for_travel_agent":"900","seat_price_for_user":"1000","seat_price_for_foreigner":"1100"},
{"shift":"night","bus_type":"deluxe","seat_price_for_travel_agent":"900","seat_price_for_user":"1000","seat_price_for_foreigner":"1100"}]
}
访问完整的词典条目:
for (day, night) in zip(dic["data"][0].items(), dic["data"][1].items()):
print(day)
print(night)
将为您提供:
('shift', 'day')
('shift', 'night')
('bus_type', 'ac')
('bus_type', 'deluxe')
('seat_price_for_travel_agent', '900')
('seat_price_for_travel_agent', '900')
('seat_price_for_user', '1000')
('seat_price_for_user', '1000')
('seat_price_for_foreigner', '1100')
('seat_price_for_foreigner', '1100')
shift
shift
bus_type
bus_type
seat_price_for_travel_agent
seat_price_for_travel_agent
seat_price_for_user
seat_price_for_user
seat_price_for_foreigner
seat_price_for_foreigner
day
night
ac
deluxe
900
900
1000
1000
1100
1100
仅访问密钥(相当于省略.keys()
):
将为您提供:
('shift', 'day')
('shift', 'night')
('bus_type', 'ac')
('bus_type', 'deluxe')
('seat_price_for_travel_agent', '900')
('seat_price_for_travel_agent', '900')
('seat_price_for_user', '1000')
('seat_price_for_user', '1000')
('seat_price_for_foreigner', '1100')
('seat_price_for_foreigner', '1100')
shift
shift
bus_type
bus_type
seat_price_for_travel_agent
seat_price_for_travel_agent
seat_price_for_user
seat_price_for_user
seat_price_for_foreigner
seat_price_for_foreigner
day
night
ac
deluxe
900
900
1000
1000
1100
1100
仅访问以下值:
for (day, night) in zip(dic["data"][0].values(), dic["data"][1].values()):
print(day)
print(night)
将为您提供:
('shift', 'day')
('shift', 'night')
('bus_type', 'ac')
('bus_type', 'deluxe')
('seat_price_for_travel_agent', '900')
('seat_price_for_travel_agent', '900')
('seat_price_for_user', '1000')
('seat_price_for_user', '1000')
('seat_price_for_foreigner', '1100')
('seat_price_for_foreigner', '1100')
shift
shift
bus_type
bus_type
seat_price_for_travel_agent
seat_price_for_travel_agent
seat_price_for_user
seat_price_for_user
seat_price_for_foreigner
seat_price_for_foreigner
day
night
ac
deluxe
900
900
1000
1000
1100
1100
我想你可以从这里开始。请以更具体的方式定义“比较”(相同的键?相同的键和值?)