내 코드에 도움이 필요합니다.파이썬 : 정수와 문자열을 키로 사용하여 중첩 목록을 사전으로 변환
F = ["M", "O", "R", "V", "C", "P"]
내가 사전에 목록 주파수를 변환 할 :
numbers = [[4, 1, 1, 2, 3, 2], [2, 7, 3, 2, 7, 4], [1, 7, 4, 3, 3, 2]]
나는 또한 문자열의 목록을 가지고 :
내가 이렇게 만든 중첩 된 목록을 가지고있다. 내 코드는 이것이다 :{(0, 1): 1, (1, 2): 3, (2, 4): 3, (0, 0): 4, (2, 0): 1, (2, 2): 4, (1, 4): 7, (1, 1): 7, (1, 5): 4, (1, 3): 2, (0, 5): 2, (2, 1): 7, (2, 5): 2, (0, 4): 3, (1, 0): 2, (2, 3): 3, (0, 3): 2, (0, 2): 1}
문제는 내 사전의 키에 F로 목록 F의 문자열을 사용 할 것입니다 :
numb = dict(((i,f), numbers[i][f]) for i in range(len(numbers)) for f in range(len(numbers[0])))
다음은 결과입니다. TypeError: list indices must be integers, not str
내가 그 문제를 해결 할 수있는 방법이 있나요
numb = dict(((i,f), numbers[i][f]) for i in range(len(numbers)) for f in F)
하지만 난 대가로 얻을 :이 같은 코드를 변경하려
{(0, "O"): 1, (1, "R"): 3, (2, "V"): 3, (0, "M"): 4, ... (0, "O"): 1}
: 내가 갖고 싶어? 미리 감사드립니다.
나는 길 잃은 괄호를 추측하고있어이 주위에 한 가지 방법은 당신이해야 모두 수정과 함께 'F'
에서 사용하는 문자의 위치를 반환하는 인덱스 방법을 사용하는 것입니다. 오류 메시지를 자세히 살펴보면 구문 오류가 발견 된 곳 (실제 오류가없는 곳)에 표시됩니다. – alexis
마지막 코드 조각에'''가 너무 많습니다. –
@KindStranger 감사합니다. 나는 괄호를 수정했지만 이제는 또 다른 유형의 오류가 발생했습니다. – killua