java,python 에 해당 php foreach($배$key=>$value)
-
10-07-2019 - |
문제
Php 에서,하나를 처리할 수 있는 목록의 국가의 이름과 그들의 약어와 결합 배열은 다음과 같다:
<?php
$stateArray = array(
"ALABAMA"=>"AL",
"ALASKA"=>"AK",
// etc...
"WYOMING"=>"WY"
);
foreach ($stateArray as $stateName => $stateAbbreviation){
print "The abbreviation for $stateName is $stateAbbreviation.\n\n";
}
?>
출력(열쇠를 가진 주문 보존):
The abbreviation for ALABAMA is AL.
The abbreviation for ALASKA is AK.
The abbreviation for WYOMING is WY.
편집:참고 그 순서 배열 요소의 보존에서의 출력 php 버전입니다.Java 구현을 사용하여,HashMap,을 보증하지 않습의 순서를 요소입니다.하지도 않는 사전에 있습니다.
이것은 어떻게 수행 java,python?나만을 찾아 접근 방식을 공급하는 값을 주어,키,python 과 같은 의:
stateDict = {
"ALASKA": "AK",
"WYOMING": "WY",
}
for key in stateDict:
value = stateDict[key]
편집:대답을 기반으로,이 솔루션에서는 python,
# a list of two-tuples
stateList = [
('ALABAMA', 'AL'),
('ALASKA', 'AK'),
('WISCONSIN', 'WI'),
('WYOMING', 'WY'),
]
for name, abbreviation in stateList:
print name, abbreviation
출력:
ALABAMA AL
ALASKA AK
WISCONSIN WI
WYOMING WY
는 정확하게 무엇이 필요합니다.
해결책
Python:
for key, value in stateDict.items(): # .iteritems() in Python 2.x
print "The abbreviation for %s is %s." % (key, value)
에서 Java:
Map<String,String> stateDict;
for (Map.Entry<String,String> e : stateDict.entrySet())
System.out.println("The abbreviation for " + e.getKey() + " is " + e.getValue() + ".");
다른 팁
java 에 대한 연관 배열 사용 지도
import java.util.*;
class Foo
{
public static void main(String[] args)
{
Map<String, String> stateMap = new HashMap<String, String>();
stateMap.put("ALABAMA", "AL");
stateMap.put("ALASKA", "AK");
// ...
stateMap.put("WYOMING", "WY");
for (Map.Entry<String, String> state : stateMap.entrySet()) {
System.out.printf(
"The abbreviation for %s is %s%n",
state.getKey(),
state.getValue()
);
}
}
}
또한,유지 삽입하기 위해 사용할 수 있습니다 사용에 대 HashMap.
에서는 파이썬 사전 주문 에서 사용할 수 있는 파이썬 2.7(아직 출시되지 않은)및 Python3.1.그것은이라고 OrderedDict.
이것은 변경된 코드에서 o948 을 사용하는 다루고 대신 HashMap.트리 맵을 보존 순서의 열쇠에 의하여 열쇠이다.
import java.util.*;
class Foo
{
public static void main(String[] args)
{
Map<String, String> stateMap = new TreeMap<String, String>();
stateMap.put("ALABAMA", "AL");
stateMap.put("ALASKA", "AK");
// ...
stateMap.put("WYOMING", "WY");
for (Map.Entry<String, String> state : stateMap.entrySet()) {
System.out.printf(
"The abbreviation for %s is %s%n",
state.getKey(),
state.getValue()
);
}
}
}
다른 방법으로 그 일의에서 Java.하지만 더 나은 방법으로 이미 게시,이 구문에 가까이 php 코드입니다.
for (String x:stateDict.keySet()){
System.out.printf("The abbreviation for %s is %s\n",x,stateDict.get(x));
}
의 라인을 따라 알렉산더의 답변...
네이티브 파이썬 사전 유지되지 않음을 주문한 최대의 효율성을 그것의 기본을 사용:정렬되지 않은 매핑을 키의 값이 있습니다.
나는 생각할 수 있는 두 가지 해결 방법:
볼의 소스 코드 OrderedDict 와 그것을 포함에서 자신의 프로그램입니다.
목록을 보유하고 있는 키기 위해서는:
states = ['Alabamba', 'Alaska', ...] statesd = {'Alabamba':'AL', 'Alaska':'AK', ...} for k in states: print "The abbreviation for %s is %s." % (k, statesd[k])
트리 맵은 당신의 질문에 대답하기 때문에 그것은 종류에 의해 요소를 키를 사용하는 동안 보존은 원래 순서입니다.그러나,트리맵 더 적합하기 때문에 사전의 분류를 제공합니다.