Jei mydict
nėra tuščias, aš galiu prieiti prie bet kokio elemento kaip:
mydict[mydict.keys()[0]]
Ar yra koks nors geresnis būdas tai padaryti?
"Python 3", nedestruktyviai ir iteratyviai:
next(iter(mydict.values()))
Python 2, nedestruktyviai ir iteratyviai:
mydict.itervalues().next()
Jei norite, kad jis veiktų ir "Python 2", ir "Python 3", galite naudoti six
paketą:
six.next(six.itervalues(mydict))
nors šiuo metu jis yra ganėtinai painus, ir man labiau patiktų jūsų kodas.
Jei norite pašalinti bet kurį elementą, tai ir padarykite:
key, value = mydict.popitem()
Atkreipkite dėmesį, kad "pirmasis" čia nėra tinkamas terminas. Tai yra "bet koks" elementas, nes dict
nėra sutvarkytas tipas.
Kaip minėjo kiti, nėra "pirmojo elemento", nes žodynai neturi garantuotos tvarkos (jie įgyvendinami kaip hash lentelės). Jei norite, pavyzdžiui, mažiausią raktą atitinkančios reikšmės, thedict[min(thedict)]
tai padarys. Jei jums svarbu, kokia tvarka buvo įterpti raktai, t. y. jei "pirmas" reiškia "įterptas anksčiausiai", tuomet Python 3.1 versijoje galite naudoti collections.OrderedDict, kuris taip pat yra ir būsimoje Python 2.7 versijoje; senesnėse Python versijose atsisiųskite, įdiekite ir naudokite ordered dict backport (2.4 ir vėlesnės versijos), kurį galite rasti čia.
Python 3.7 Dabar diktai yra įterpimo tvarka.
Nekreipiant dėmesio į problemas, susijusias su diktanto užsakymu, tai gali būti geriau:
next(dict.itervalues())
Taip išvengsime elementų paieškos ir nenaudojamų raktų sąrašo generavimo.
next(iter(dict.values()))