【发布时间】:2020-12-02 22:28:50
【问题描述】:
您好,希望您能帮到我,
我正在尝试制作一种算法,该算法采用包含名称列表的 txt 文件,随机重新排序并将它们分配给团队。
它有效,我唯一的问题是由于某种原因它在列表的所有行中添加了一个额外的空间,除了第一个元素。不是 txt 文件,那里的列表很好。
例如,我想要这样的输出:
team 1
dude1
dude2
team 2
dude3
dude4
而是这样做:
team 1
dude1
dude2
team 2
dude3
dude4
所以第 1 队在没有空间的情况下进行,但其他所有东西在开始时都有空间。
代码如下:
import random
raw_list = open("list.txt","r")
people_list = []
for line in raw_list.readlines():
people_list.append(line)
raw_list.close()
team_list = []
team_num = int(input("enter the number of teams you want "))
len_people = int(len(people_list))
teams = len_people / team_num
len_people=int(len_people+team_num)
j = 1
i = 1
for n in range(len_people):
if i == 1:
if j>team_num:
popper = random.randint(0, (len(people_list)) - 1)
team_list.append(people_list.pop(popper))
else:
team_list.append(f"Team {j}\n")
i = i + 1
elif i < teams:
i=i+1
popper = random.randint(0, (len(people_list)) - 1)
team_list.append(people_list.pop(popper))
else:
i = 1
j = j + 1
popper = random.randint(0, (len(people_list)) - 1)
team_list.append(people_list.pop(popper))
print (*team_list)
谢谢
【问题讨论】:
-
请提供预期的minimal, reproducible example。显示中间结果与您的预期不同的地方。我们应该能够复制和粘贴您的代码的连续块,执行该文件,并重现您的问题以及跟踪问题点的输出。这让我们可以根据您的测试数据和所需的输出来测试我们的建议。
-
张贴你的整个节目是多余的。格式化输出描述以显示错误。您当前的代码失败,因为我们没有您的输入文件。通过在发布的示例中简单地对测试数据进行硬编码来替换该输入。
-
你确定你用你的代码创建了你的例子吗?该示例包含小写的“团队”,但包含大写的代码。