我有一个文件,一个.csv文件,有两列,第一列是人名,第二列是他们有多少票。
我想写一个Python脚本来选择一张随机中奖的彩票,然后匹配并返回赢家的名字。
我设法让脚本工作,但有一个问题。程序不断增加一个巨大的字符串的整数从1-41后,每个名称,我不能找出是什么原因。
import csv
import random
file = open("C:\\Users\\Username\\Desktop\\raffle.csv")
type(file)
csvreader = csv.reader(file)
rows = []
for row in csvreader:
rows.append(row)
rows
file.close()
names = []
count = []
counter = 0
for x in rows:
names.append(x[0]) # Assuming the name is in the first column
count.append(x[1])
for x in rows:
trigger = False
for y in range(len(count)):
y = str(y)
if y == ",":
trigger = True
if trigger == True:
count[counter] += y
else:
names[counter] += y
counter+=1
TotalEntries = 0 # This is the total amount of entries.
count5 = 0
print(*names)
for x in count:
TotalEntries += int(count[count5])
count5+1
winner = random.randint(0, TotalEntries)
countWin = 0
win = ""
countOut = 0
for x in count:
# # Runs through the list of raffle entries
for y in range(len(count)):
if countWin == winner:
win = names[countOut]
countWin+=1
countOut+=1
winNum = str(winner)
print("The winner is number "+winNum+", "+win)
字符串
我希望名字列表中充满了人们的个人名字。然而,每个名字后面都有一个数字列表,我不知道它的来源。我是Python的新手,所以任何提示都很感激。
jame01234567891011121314151617181920212223242526272829303132333435363738394041 nico01234567891011121314151617181920212223242526272829303132333435363738394041 silv01234567891011121314151617181920212223242526272829303132333435363738394041 kevy01234567891011121314151617181920212223242526272829303132333435363738394041 2019 - 11 - 22 01:00:00
返回的列表示例
我想要一份清单,
jame nico silv kevy Chri
.csv中的输入文件示例jame,18 nico,19 silv,48 kevy,23 Chri,22
1条答案
按热度按时间xdyibdwo1#
我很困惑,你是如何根据名字的总数(CSV中每对名字的名字 *ticket_count)随机挑选一个名字的。
给定此输入CSV:
字符串
从那里我会尝试得到一个 * 包的名字 * 像:
型
这样你就可以使用标准库的random.choice函数:
型
将CSV转换为名称包可能如下所示:
型
运行1_000次拾取,看起来拾取正确:
的字符串