홈>
그래서 파이썬에서 일 했었고 최근에 C #으로 전환했습니다. C #에서 Python 프로젝트 중 하나를 다시 작성하려고 시도했으며 사전과 관련하여 약간 멈췄습니다. 파이썬 코드의 일부에서 각각 두 개의 키로 사전을 만들고 모든 사전을 목록에 추가했습니다.
slot0 = {"itemID": 0, "amount": 0}
slot1 = {"itemID": 0, "amount": 0}
slot2 = {"itemID": 0, "amount": 0}
inv = [slot0, slot1, slot2]
그런 다음 나중에 사전 목록을 반복하여 두
itemID
의 값을 쉽게 변경할 수있었습니다.
열쇠와
amount
키 :
for slot in inv:
if slot["item"] == 0:
slot["item"] = 2
slot["amount"] += 1
break
그러나 C #에서는 그렇게 쉬운 일이 아닙니다. 사전을 성공적으로 만들고 목록에 추가했습니다.
Dictionary<string, int> slot0 = new Dictionary<string, int>() { { "itemID", 0 }, { "amount", 0 } };
Dictionary<string, int> slot1 = new Dictionary<string, int>() { { "itemID", 0 }, { "amount", 0 } };
Dictionary<string, int> slot2 = new Dictionary<string, int>() { { "itemID", 0 }, { "amount", 0 } };
List<Dictionary<string, int>> inv = new List<Dictionary<string, int>>();
private void Start()
{
inv.Add(slot0);
inv.Add(slot1);
inv.Add(slot2);
}
그러나 pyzwyz를 복제하는 방법을 잘 모르겠습니다
파이썬 코드에서 루프. 나는 그
for
알아
KeyValuePairs와 함께 사용할 수 있지만 여러 키의 값을 변경할 수는 없습니다. 누구든지 도울 수 있다면 좋을 것입니다. 내 질문이 너무 명확하지 않은 경우 죄송합니다. 명확하게 설명하겠습니다.
foreach
- 답변 # 1
관련 자료
- set - 다음과 같은 경우 여러 개를 사용하지 않고 변수를 다른 값으로 변경하는 방법 - 문장 파이썬
- Windows "이 PC"폴더가 두 대의 다른 컴퓨터에서 다르게 보이는 이유는 무엇이며 어떻게 변경할 수 있습니까?
- r - 목록을 반복하여 다른 개체를 만드는 함수
- javascript - d3에서 선이 통과하는 다른 축에 툴팁 추가
- ios - 우선 순위를 통해 고유 콘텐츠 크기를 변경하는 방법
- python 3.x - 내 osgetcwd ()가 같은 위치에있는 두 개의 다른 파일간에 변경되는 이유는 무엇입니까?
- reactjs - 머티리얼 UI 테마를 통해 보조 버튼 텍스트 색상 변경
- python - 길이가 다른 두 개의 사전을 반복하는 방법은 무엇입니까?
- javascript - 이 텍스트 상자를 통해 여러 줄을 서로 다른 div/span 태그에 추가하려면 어떻게해야합니까?
- r - 종자 설정 - 입력이 변경되지 않은 후 출력이 다른 이유
- javascript - PC 및 입력 유형 파일을 통한 이미지의 다른 회전
- php - 다른 탭을 표시하도록 html 요소를 변경하는 Foreach
- javascript - 마우스를 가져 가면 카드의 이미지를 변경할 수 있습니다 하지만 이미지가 다른 많은 카드에 대해 어떻게해야합니까?
- ios - 다른 부울을 기반으로 변수를 어떻게 변경할 수 있습니까?
- android - 디자인 배경에서 다른 이미지를 변경하도록 예약하는 방법
- pandas - 4 개의 다른 열에 NaN을 포함하는 35000에서 20 개의 행만 삭제하는 방법은 무엇입니까?
- frontend - JavaScript에서 다른 이미지를 클릭 할 때 모달의 정보 변경
- json - Python 및 Pandas를 사용하여 다른 카테고리 이름으로 API를 반복
- c++ - 사용자 정의 커널을 통해 cuda - : gpumat 값 변경
- c# - unity - 다른 keypress로 게임 오브젝트 건너 뛰기
관련 질문
- python : 다차원 사전 이해(파이썬)
- python : 파이썬에서 elif 문과 else 문과 사전에 문제가 있습니다.
- Pandas를 사용하지 않고 Python에서 행별로 CSV 파일을 편집하는 방법
- python : 람다 함수를 사용하여 사전에 액세스하고 새 사전으로 재정렬
- python : 서로 다른 수준의 두 목록이 있는 중첩 JSON 파일 분해
- 사전(python, dict, 여러 플롯)에서 여러 dfs를 사용하여 루프에서 특정 수의 플롯을 플롯합니다.
- python : C#로 쓰기와 파이썬으로 동시에 하나의 파일에 읽기 [중복]
- python : 파이썬의 관점 API에서 점수 값을 수집하는 방법은 무엇입니까?
- python : 내가 만든 텍스트 파일에 데이터를 덤프하지 않는 Json 필드
- python : 누락된 잔액 번호 반환
이것은 가장 우아한 해결책은 아니지만 파이썬에서 가지고있는 것과 일치합니다. 당신은
foreach
있을거야 -파이썬의for
를 따르는 목록을 통해 훌륭하게. 그 후, 사전을slot
로 얻습니다. 키와 함께 인덱서를 사용하여 값을 액세스하고 변경하십시오.사전 액세스에 대한 가능한 문제에 대해 배우려면 사전 문서를 확인해야합니다. 내 예에서 사용중인 키가 존재하지 않으면
KeyNotFoundException
로 끝납니다. . 코드를보다 강력하게 만들려면if
에 키 검사를 추가하십시오. @Sach이 제안한대로;이렇게 :if (slot.ContainsKey("itemID") && slot["itemID"] == 0) { ... }
완전성을 위해
TryGetValue
를 사용할 수도 있습니다. .@mjwills가 의견에서 지적했듯이 이점은 주요 조회 수를 줄입니다 (
out
에 대한 자세한 내용). 이것 좀 봐). 와이즈 비즈Item[]
및ContainsKey
"접근 O (1).TryGetValue