我正在关注在线Python项目并遇到一些问题。我不觉得我的代码非常“pythonic”,代码工作不正常。在Python中读取CSV文件并分配到不同的列表
该程序应该读取足球运动员的CSV文件。输出是为了将玩家分成三个不同的足球队。每支球队应该拥有与足球经验相同数量的球员和相同的金额。在18名球员中,有9名经验丰富,因此相当于六名球队成员,六名球员中有三名经验丰富。我能得到它,所以每个球队都有六名球员,但我被绊倒的部分是经验部分。一些球队以三个结局,但一些不是。以下是我试过到目前为止:
import csv
import random
def assign_players():
with open('soccer_players.csv') as csvfile:
soccerplayers = csv.DictReader(csvfile)
players = list(soccerplayers)
target = open('teams.txt', 'w')
raptors=[]
dragons=[]
sharks=[]
for player in players:
experienced_player = 0
if len(raptors)<6:
raptors.append(player)
if player['Soccer Experience'] == 'YES':
experienced_player+=1
if experienced_player >3:
break
elif len(dragons)<6:
dragons.append(player)
if player['Soccer Experience'] == 'YES':
experienced_player+=1
if experienced_player >3:
break
else:
sharks.append(player)
# if player['Soccer Experience'] == 'YES':
# experienced_player+=1
# if experienced_player >3:
# break
target.write("Raptors")
target.write("\n")
for raptor in raptors:
target.write(str(raptor["Name"])+ ', '),
target.write(str(raptor["Soccer Experience"])+ ', '), " ",
target.write(str(raptor["Guardian Name(s)"])+ ' '), " ",
target.write("\n")
target.write("\n")
target.write("Dragons")
target.write("\n")
for dragon in dragons:
target.write(str(dragon["Name"]) + ', '),
target.write(str(dragon["Soccer Experience"]) + ', '), " ",
target.write(str(dragon["Guardian Name(s)"]) + ' '), " ",
target.write("\n")
target.write("\n")
target.write("Sharks")
target.write("\n")
for shark in sharks:
target.write(str(shark["Name"]) + ', '),
target.write(str(shark["Soccer Experience"]) + ', '), " ",
target.write(str(shark["Guardian Name(s)"]) + ' '), " ",
target.write("\n")
if __name__ == "__main__":
assign_players()
这是的soccer_players.csv文件是如何格式化
Name,Height (inches),Soccer Experience,Guardian Name(s)
Joe Smith,42,YES,Jim and Jan Smith
请明确指定您的问题。把一两句话简单化,少说明,多数据例子是很好的。 – j0e1in