Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何比较有序字典键?_Python_Dictionary - Fatal编程技术网

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
我想你可以从这里开始。

请以更具体的方式定义“比较”(相同的键?相同的键和值?)