私は投票投票システムをPythonで実装しようとしています。私はこのコードを持っている:辞書の理解は鍵のリストを破壊する
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