java-und python-äquivalent zu php foreach($array as $key => $Wert)
In php, man kann eine Liste der Staaten Namen und deren Abkürzungen mit ein assoziatives array wie dieses:
<?php
$stateArray = array(
"ALABAMA"=>"AL",
"ALASKA"=>"AK",
//etc...
"WYOMING"=>"WY"
);
foreach ($stateArray as $stateName => $stateAbbreviation){
print "The abbreviation for $stateName is $stateAbbreviation.\n\n";
}
?>
Ausgabe (mit der Reihenfolge der Schlüssel erhalten):
The abbreviation for ALABAMA is AL.
The abbreviation for ALASKA is AK.
The abbreviation for WYOMING is WY.
EDIT: Beachten Sie, dass die Reihenfolge der array-Elemente erhalten Sie in der Ausgabe der php-version. Die Implementierung in Java mit einer HashMap, keine Garantie für die Reihenfolge der Elemente. Noch ist das Wörterbuch in Python.
Wie ist dies in java und python? Finde ich nur Ansätze liefern den Wert für den Schlüssel, wie python ' s:
stateDict = {
"ALASKA": "AK",
"WYOMING": "WY",
}
for key in stateDict:
value = stateDict[key]
EDIT: basierend auf den Antworten, das war meine Lösung in python,
# a list of two-tuples
stateList = [
('ALABAMA', 'AL'),
('ALASKA', 'AK'),
('WISCONSIN', 'WI'),
('WYOMING', 'WY'),
]
for name, abbreviation in stateList:
print name, abbreviation
Ausgabe:
ALABAMA AL
ALASKA AK
WISCONSIN WI
WYOMING WY
Das ist genau das, was erforderlich war.
InformationsquelleAutor der Frage |
Du musst angemeldet sein, um einen Kommentar abzugeben.
in Python:
in Java:
InformationsquelleAutor der Antwort newacct
in java assoziatives array mit Map
InformationsquelleAutor der Antwort o948
Auch, zu pflegen, einsetzen, um, können Sie eine LinkedHashMap statt einer HashMap.
InformationsquelleAutor der Antwort
In python eine bestellt dictionary ist in Python 2.7 (noch nicht veröffentlicht) und Python 3.1. Es heißt OrderedDict.
InformationsquelleAutor der Antwort Alexander Ljungberg
Dies ist der modifizierte code von o948, wo Sie eine TreeMap anstelle einer HashMap. Die Tree-map beizubehalten, die Reihenfolge der Schlüssel, der Schlüssel.
InformationsquelleAutor der Antwort Milhous
Anderen Weg, es zu tun in Java. Obwohl eine bessere Möglichkeit wurde bereits gepostet, das ist syntaktisch näher zu Ihrem php-code.
InformationsquelleAutor der Antwort MAK
Entlang der Linien von Alexanders Antwort...
Die native python-dictionary nicht pflegen Anordnung für maximale Effizienz Ihrer primären Verwendung: eine ungeordnete Zuordnung von Schlüsseln zu Werten.
Ich denken kann zwei workarounds:
Blick auf den Quellcode von OrderedDict und fügen Sie es in Ihrem eigenen Programm.
machen Sie eine Liste, der hält die Schlüssel in der Reihenfolge:
InformationsquelleAutor der Antwort A B
TreeMap ist nicht die Antwort auf Ihre Frage, denn Sie sortiert die Elemente nach Schlüsseln, während LinkedHashMap behält die ursprüngliche Reihenfolge. Allerdings TreeMap eignet sich eher für das Wörterbuch, weil der Sortierung.
InformationsquelleAutor der Antwort Denis Tulskiy