我從它具有以下語法的文件閱讀:排序字典鍵
Akaka D HI -1 -1 1 1 1 -1 -1 1 1 1 1 1 1 1 -1 1 1 1 -1 1 1 1 1 1 -1 1 -1 -1 1 1 1 1 1 1 0 0 1 -1 -1 1 -1 1 -1 1 1 -1
Alexander R TN 1 1 1 1 1 1 1 1 1 -1 1 -1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1
我需要創建的名稱映射到其投票列表的字典。在這種情況下,名稱是阿卡卡和亞歷山大和投票是一串數字,從-1,0和1例輸出將是:
{'Akaka': [-1 -1 1 1 1 -1 -1 1 1 1 1 1 1 1 -1 1 1 1 -1 1 1 1 1 1 -1 1 -1 -1 1 1 1 1 1 1 0 0 1 -1 -1 1 -1 1 -1 1 1 -1], 'Alexander': [1 1 1 1 1 1 1 1 1 -1 1 -1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1]...,'name':[list of votes in integer form]}
所以這是我使用的代碼:
for line in voting_data:
myList.append(line.strip().split(' '))
names = []
votes = []
intVotes = []
votingDict = {}
for i in myList:
names.append(i[0])
for j in names:
votes.append(i[3:])
for k in votes:
intVotes.append([int(v) for v in k])
votingDict = {names[i]:votes[j] for i in range(len(names)) for j in range(len(votes))}
print votingDict
前幾輸出返回以下(Pyror是另一個名字,所以是邦寧):
{'Pryor': ['-1', '-1', '1', '1', '1', '-1', '-1', '1', '1', '1', '1', '1', '-1', '1', '1', '1', '1', '1', '-1', '1', '1', '1', '1', '1', '1', '1', '-1', '-1', '1', '1', '1', '1', '1', '1', '1', '-1', '1', '-1', '1', '1', '1', '1', '-1', '1', '1', '-1'], 'Bunning': ['-1', '-1', '1', '1', '1', '-1', '-1', '1', '1', '1', '1', '1', '-1', '1', '1', '1', '1', '1', '-1', '1', '1', '1', '1', '1', '1', '1', '-1', '-1', '1', '1', '1', '1', '1', '1', '1', '-1', '1', '-1', '1', '1', '1', '1', '-1', '1', '1', '-1']
我的問題是錯誤的名稱是越來越映射到錯誤列表。換句話說,映射到Pryor的列表實際上是映射到Alexander的列表。我的列表按正確的順序排列,但名稱不正確。有沒有辦法對這本詞典中的名字進行排序?
謝謝,你是對的我正在笨拙 - –