2013-03-29 4 views
3

나는 하나의 제거 토너먼트를 생성하는 프로그램을 만들고 있습니다. 지금까지 내 코드는 다음과 같습니다 (방금 시작했습니다)python의 목록에서 번호를 선택

amount = int(raw_input("How many teams are playing in this tournament? ")) 
teams = [] 
i = 0 
while i<amount: 
    teams.append(raw_input("please enter team name: ")) 
    i= i+1 

이제 막 달라 붙었습니다. 서로 마주 보는 팀을 선택할 2 개의 숫자를 무작위로 선택하고 싶습니다. 숫자는 전혀 반복 할 수 없으며 1에서 "금액"까지의 범위를 가져야합니다. 가장 효율적인 방법은 무엇입니까?

답변

11

random 모듈을 살펴보십시오.

>>> import random 
>>> teams = ['One team', 'Another team', 'A third team'] 
>>> team1, team2 = random.sample(teams, 2) 
>>> print team1 
'Another team' 
>>> print team2 
'One team' 
+1

니스! 나는 문서를 검사했고,'random.sample()'은리스트에서 두 개의 유일한 값을 반환 할 것이다. 따라서 각 팀 이름이 한 번만 목록에있는 한이 두 팀의 팀 이름을 무작위로 선택해야합니다. 나는 이것보다 더 좋은 해결책이있을 수 있다고 생각하지 않는다! – steveha

+1

감사합니다. 이것은 완벽합니다! – chadybear

+0

@ user2108568 환영합니다. :). 답변을 수락하는 것을 잊지 마십시오 :). – TerryA

2
team1 = random.choice(teams) 
teams.remove(team1) 
team2 = random.choice(teams) 

내가 그 일을한다고 생각합니다.

+0

예. 파이썬에서 여러분은 정말로 원하는 것을 요구할 수 있습니다 : 무작위로 선택된 팀 중 하나. 랜덤 넘버를 얻을 필요가 없으며 팀을 얻는데 사용할 수 있습니다. 무작위 팀을 얻으십시오. – steveha

+0

필요한 항목에 따라 다릅니다. 이것은 2보다 큰 크기 목록에서 2 팀을 선택하는 방법입니다. 팀을 남겨 두려면 특별한 경우를 만들어야합니다 (팀 결성에 어떤 방법을 사용 하든지 관계없이). –

0

나는 당신이 예를 들어 사용할 수있는 임의의 숫자를 선택했다 그러나

random.randint(1,10) 

이 당신에게 1

10 주 사이의 임의의 숫자를 줄 것이다 요구하는 것을 완전히 확실하지 않다 : 당신이 필요로하는 임의의 모듈을 가져 오려면

import random 
관련 문제