我得到了以下字典, network_values
network_values = {
0: "CGR cinémas",
1: "Ville de Choisy-le-Roi",
2: "Pathé Gaumont",
3: "UGC",
4: "Cinéode",
5: "Magestic",
6: "Cinéville",
7: "cinebus",
8: "CGR",
9: "Utopia",
10: "écran mobile 74"
}
我有另一本theater_values帶有嵌套串列的字典
theater_values = {
"0":[
"node/4522090127",
1.0,
300.0,
"Saint-Jean-Pied-de-Port",
"nan"
],
"1":[
"node/563839797",
2.0,
239.0,
"Barbezieux-Saint-Hilaire",
"nan"
],
"2":[
"node/5472582580",
"nan",
"nan",
"Lezay",
"nan"
],
"3":[
"node/7623662713",
2.0,
280.0,
"Montaigu-Vendée",
"nan"
],
"4":[
"node/4115072853",
1.0,
274.0,
"Chalonnes-sur-Loire",
"nan"
],
"5":[
"node/5250851417",
3.0,
341.0,
"Thiers",
"nan"
],
"6":[
"way/83676895",
3.0,
534.0,
"Argentan",
"nan"
],
"7":[
"node/502262289",
8.0,
1898.0,
"Tours",
"CGR cinémas"
],
"8":[
"node/3475038904",
"nan",
"nan",
"Saint-étienne",
"nan"
],
"9":[
"way/146090090",
"nan",
"nan",
"Marcoussis",
"nan"
],
"10":[
"way/66143799",
"nan",
"nan",
"Choisy-le-Roi",
"Ville de Choisy-le-Roi"
],
"11":[
"node/7768900435",
12.0,
2139.0,
"Paris",
"Pathé Gaumont"
]
}
其目的是當像的值CGR cinémas中的嵌套串列存在theater_values并且還network_values,我更新theater_values用的鍵network_values。
如果CGR cinémas存在于network_valuesand 中theater_values,我將更新theater_valuesto 0(可能是整數或字符)。
這是我所做的,但它沒有做它應該做的
def proto_csv(theater_values):
network_values = {0: 'CGR cinémas', 1: 'Ville de Choisy-le-Roi', 2: 'Pathé Gaumont', 3: 'UGC', 4: 'Cinéode', 5: 'Magestic', 6: 'Cinéville', 7: 'cinebus', 8: 'CGR', 9: 'Utopia', 10: 'écran mobile 74}
for keys_theaters,vals_theaters in theater_values.items():
for keys_networks,vals_networks in network_values.items():
if vals_theaters == vals_networks:
theater_values[keys_theaters] = str(keys_networks)
return theater_values
我對如何做到這一點感到有些困惑,因為我的代碼沒有給我想要的結果或實際上沒有任何結果......
更新后的結果是這樣的
theater_values = {
"0":[
"node/4522090127",
1.0,
300.0,
"Saint-Jean-Pied-de-Port",
"nan"
],
"1":[
"node/563839797",
2.0,
239.0,
"Barbezieux-Saint-Hilaire",
"nan"
],
"2":[
"node/5472582580",
"nan",
"nan",
"Lezay",
"nan"
],
"3":[
"node/7623662713",
2.0,
280.0,
"Montaigu-Vendée",
"nan"
],
"4":[
"node/4115072853",
1.0,
274.0,
"Chalonnes-sur-Loire",
"nan"
],
"5":[
"node/5250851417",
3.0,
341.0,
"Thiers",
"nan"
],
"6":[
"way/83676895",
3.0,
534.0,
"Argentan",
"nan"
],
"7":[
"node/502262289",
8.0,
1898.0,
"Tours",
"O" #here
],
"8":[
"node/3475038904",
"nan",
"nan",
"Saint-étienne",
"nan"
],
"9":[
"way/146090090",
"nan",
"nan",
"Marcoussis",
"nan"
],
"10":[
"way/66143799",
"nan",
"nan",
"Choisy-le-Roi",
"Ville de Choisy-le-Roi"
],
"11":[
"node/7768900435",
12.0,
2139.0,
"Paris",
"1" #here
]
}
uj5u.com熱心網友回復:
第一件事是'écran mobile 74在您粘貼的代碼回傳時關閉字典中的引號SyntaxError。
然后,在if您當前將字典與字串進行比較的陳述句中,運算式永遠不會為真。您想查看字串是否在字典值中,如果是,則更新字典的該元素:
if vals_networks in vals_theaters:
theater_values[keys_theaters][vals_theaters.index(vals_networks)] = str(keys_networks)
這給出了輸出:
{
'0': ['node/4522090127', 1.0, 300.0, 'Saint-Jean-Pied-de-Port', 'nan'],
'1': ['node/563839797', 2.0, 239.0, 'Barbezieux-Saint-Hilaire', 'nan'],
'2': ['node/5472582580', 'nan', 'nan', 'Lezay', 'nan'],
'3': ['node/7623662713', 2.0, 280.0, 'Montaigu-Vendée', 'nan'],
'4': ['node/4115072853', 1.0, 274.0, 'Chalonnes-sur-Loire', 'nan'],
'5': ['node/5250851417', 3.0, 341.0, 'Thiers', 'nan'],
'6': ['way/83676895', 3.0, 534.0, 'Argentan', 'nan'],
'7': ['node/502262289', 8.0, 1898.0, 'Tours', '0'],
'8': ['node/3475038904', 'nan', 'nan', 'Saint-étienne', 'nan'],
'9': ['way/146090090', 'nan', 'nan', 'Marcoussis', 'nan'],
'10': ['way/66143799', 'nan', 'nan', 'Choisy-le-Roi', '1'],
'11': ['node/7768900435', 12.0, 2139.0, 'Paris', '2']
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/373902.html
