>>> knights = {'gallahad': 'the pure', 'robin': 'the brave'} >>> for k, v in knights.iteritems(): ... print k, v
Kuinka saan tuosta 'gallahad'n ja 'robin'n otettua muuttujiksi?
En ole ihan varma mitä tarkoitat, mutta olisiko tästä apua:
>>> knights = {'gallahad': 'the pure', 'robin': 'the brave'} >>> for k in knights.keys(): ... print k ... gallahad robin >>> k0,k1 = knights.keys() >>> k0 'gallahad' >>> k1 'robin'
Jos haluat niiden mukaan nimetyt muuttujat, voit lisätä ne locals-funktion palauttamaan sanakirjaan. Tässä on vielä esimerkkifunktiot, jotka vastaavat PHP:n samannimisiä funktiota: compact
yhdistää paikallisia muuttujia yhdeksi sanakirjaksi, extract
purkaa sanakirjan paikallisiksi muuttujiksi. Ensimmäisenä parametrina niille pitää antaa tuo locals-sanakirja. Voi niillä tietysti siirtää asioita muustakin sanakirjasta toiseen.
#!/usr/bin/python3 # -*- coding: utf-8 -*- def compact(dict_src, *keys): return dict((i, dict_src[i]) for i in keys) def extract(dict_dest, dict_src): for i, j in dict_src.items(): dict_dest[i] = j a = 1 b = 2 c = compact(locals(), 'a', 'b') print(c) # {'a': 1, 'b': 2} d = {'a': 3, 'b': 4} extract(locals(), d) print(a, b) # 3 4
Metabolix kirjoitti:
Jos haluat niiden mukaan nimetyt muuttujat...
Nimenomaan tätä hain.
Yllättävää kyllä, että tuon joutuu noinkin "hankalasti" tekemään. Onko varma, ettei tuohon ole mitään yksinkertaisempaa?
Siis, jos koitan vielä selventää asiaa:
Muuttuja Arvo
=======================
1. k "gallahad"
2. gallahad "jotain"
Kiitos vinkeistä!
No jos karsii Metabolixin esimerkin äärimmilleen, niin näinhän se toimii:
>>> knights = {'gallahad': 'the pure', 'robin': 'the brave'} >>> for k, v in knights.iteritems(): ... locals()[k] = v ... >>> gallahad 'the pure' >>> robin 'the brave' >>>
Muoks:
lainaus:
Muuttuja Arvo ======================= 1. k "gallahad" 2. gallahad "jotain"
Et varmaan näin yksinkertaista asiaa hakenut...
>>> k = 'gallahad' >>> gallahad = 'jotain' >>>
...vaan nimenomaan mainitsemastasi dictistä rakennettuja muuttujia?
Kiitoksia, selvisi tämäkin asia.
Chiman kirjoitti:
...vaan nimenomaan mainitsemastasi dictistä rakennettuja muuttujia?
Kyllä, juuri tätä hain.
Aihe on jo aika vanha, joten et voi enää vastata siihen.