首页 > 解决方案 > 如何使两个Lists对应并创建一个deck

问题描述

所以基本上,我有一个有等级、权力和卡片的文件。我让那些进入他们自己的名单。所以我有一个等级、力量和卡片的清单。我想让等级列表和卡片列表对应,以便它输出它拥有的卡片数量的等级。例如,我有一个名为的列表name = [Jake, Blake, Sam, Adam and Dino]和一个名为num = [2,3,1,5,4]. 我希望 name 和 num 对应,所以 Jake 和 2,以及 Blake 和 3 等。但是当它输出时,我希望 Jake 出现 2 次,Blake 出现 3 次。这是我到目前为止所做的

numFile = open("ranks.dat", "r")

rankList = []
powerList = []
cardList = []


while True:
 text = numFile.readline()
 #rstrip removes the newline character read at the end of the line
 text = text.rstrip("\n")     
 if text=="": 
  break
 info = text.split(",")
 rankList.append(info[0])
 powerList.append(int(info[1]))
 cardList.append(int(info[2]))
 deck = cardList*(int(rankList))* This is what I tried

numFile.close()

print(80*"=")
print("Level 3 Build Deck")
print(80*"=")
print(deck)*

在这里我有文件(等级,力量,卡片):

Admiral,30,1
General,25,1
Colonel,20,2
Major,15,2
Captain,10,2
Lieutenant,7,2
Sergeant,5,4
Corporal,3,6
Private,1,10

标签: pythonlist

解决方案


您可以zip像这样轻松使用:

cardList = ["Jake", "Blake", "Sam", "Adam", "Dino"]
rankList = [2, 3, 1, 5, 4]

deck = list(zip(cardList, rankList))
print(deck)
#[('Jake', 2), ('Blake', 3), ('Sam', 1), ('Adam', 5), ('Dino', 4)]

推荐阅读