저는 파이썬으로 순위 투표 시스템을 구현하려고합니다.사전 이해가 키 목록을 삭제합니다.
import numpy as np
import itertools
candidates = ['Bob', 'Alice', 'Jim', 'Sarah', 'Paul', 'Jordan']
votes = np.matrix(
'1 2 5 3 4 6;' \
'1 2 3 4 5 6;' \
'5 1 2 4 3 6;' \
'6 2 1 3 4 5;' \
'4 3 2 1 5 7'
)
pairs = itertools.combinations(candidates, 2) # All pairs of candidates
d = dict.fromkeys(pairs, 0)
for pair in pairs:
print(pair)
사전은 다음과 같습니다 :이 코드가
내가 원하는 것입니다d
=> {('Paul', 'Jordan'): 0, ('Alice', 'Sarah'): 0, ('Alice', 'Jim'): 0, ('Alice', 'Paul'): 0, ('Jim', 'Sarah'): 0, ('Sarah', 'Paul'): 0, ('Bob', 'Alice'): 0, ('Bob', 'Jordan'): 0, ('Jim', 'Jordan'): 0, ('Jim', 'Paul'): 0, ('Sarah', 'Jordan'): 0, ('Bob', 'Paul'): 0, ('Bob', 'Sarah'): 0, ('Bob', 'Jim'): 0, ('Alice', 'Jordan'): 0}
. 하지만이 작업을 수행하면 터플 목록 인 pairs
이 삭제 된 것 같습니다. 나는 사전 라인, 코드 출력 꺼내 경우
는 : 사전 온라인으로
('Bob', 'Alice')
('Bob', 'Jim')
('Bob', 'Sarah')
('Bob', 'Paul')
('Bob', 'Jordan')
('Alice', 'Jim')
('Alice', 'Sarah')
('Alice', 'Paul')
('Alice', 'Jordan')
('Jim', 'Sarah')
('Jim', 'Paul')
('Jim', 'Jordan')
('Sarah', 'Paul')
('Sarah', 'Jordan')
('Paul', 'Jordan')
를, 아무것도 출력합니다 없습니다.
는 또한 사전 이해d = {pair: 0 for pair in pairs}
을 시도 그리고 같은 일이 발생했습니다. pairs
리스트가 파괴되는 이유는 무엇입니까?
'pairs'는 튜플 목록이 아닌 반복자입니다. –
Yah는 목록으로 다시 작성합니다. – intrepidhero