首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >扫桩发生器

扫桩发生器
EN

Stack Overflow用户
提问于 2014-03-06 23:34:01
回答 1查看 353关注 0票数 0

我是个新手,正为这个循环问题而发狂。我想随机地把一个国家分配给参加抽奖比赛的人的名单。一旦一个国家被分配了,那么它就不再可以在循环的进一步迭代中被分配。循环应该遍历整个人员列表(这比国家列表要短)。是的,我知道代码可能更简单,但这正是我放弃的时候。请指点!

代码语言:javascript
复制
import random
filez = open ('C:/Users/Andy/Desktop/countrys.txt', 'r')
countries = filez.readlines()

filez2 = open ('C:/Users/Andy/Desktop/names.txt', 'r' )
people = filez2.readlines()

def chop (x):    #gets rid of wierd added bits
    for i in range(0, len(x)):
        x[i] = x[i] [:-1]
    return x

chop(countries)
chop(people)

def assign (y):
    used = []
    for person in range(0, len(y)):
        num = random.randint(0, len(countries))    
        if num not in used:
            print (people[person] + " gets " + countries[num])
            used.append(num)
        else:
            num = random.randint(0, len(countries))
            print (people[person] + " gets " + countries[num])
            used.append(num)


assign(people)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-06 23:37:33

一个可能的解决办法是:

代码语言:javascript
复制
random.shuffle(countries)
assignments = list(zip(people, countries))

这将给出一个(person, country)元组的列表。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22238472

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档