2016-11-16 2 views
0

Я пытаюсь установить и получить доступ к словарю с несколькими ключами в Python.Словарь с несколькими элементами в Python

#province, [shipping cost, valid postal codes] 

provinceShipping = {"AB":[12,"A"],"BC":[12,"B"],"MB":[12,"M","L","K"]} 

x = (input("province ")).upper() 
y = (input("first letter of postal code ")).upper() 
if x in provinceShipping: 
access the cost and valid postal codes 

В принципе, я хочу использовать словарь, содержащий провинцию, стоимость доставки и действительные почтовые индексы. Как получить доступ к почтовым кодам после стоимости? В некоторых провинциях также имеется более одного действительного почтового кода, такого как «МБ» в приведенном выше примере. Есть лучший способ сделать это?

ответ

1

Для того, чтобы получить почтовый индекс всех элементов, сделайте следующее:

for province, (shipping_cost, *postal_code) in provinceShipping.items(): 
    print('Province: ' ,province, 'Shipping Cost', shipping_cost, ' Postal Code: ', postal_code) 

# prints: 
Province: MB Shipping Cost 12 Postal Code: ['M', 'L', 'K'] 
Province: BC Shipping Cost 12 Postal Code: ['B'] 
Province: AB Shipping Cost 12 Postal Code: ['A'] 

Для одной конкретной области, вы можете сделать:

>>> provinceShipping['MB'][1:] # For 'MB' province 
['M', 'L', 'K'] 
+0

Спасибо так много. Я ломал голову, пытаясь понять это. Ваше решение работает отлично. – freeloader1969

1

Если во всех случаях первый элемент в вы можете использовать следующие значения: список всех ключей в словаре будет стоить, а остальные будут ВСЕГДА быть почтовыми кодами, тогда вы можете использовать это:

if x in provinceShipping: 
    print "cost: " , provinceShipping[x][0] 
    print "post codes: " , provinceShipping[x][1:] 
Смежные вопросы