난 임의 제안 스크립트를 만들고 있습니다. 나는 내 생성 목록에 반복이 없는지 확인하는 방법에 대한 검색에서 random.sample을 발견했습니다. 기존 목록에 대해 결과를 테스트하기 위해 if 문을 사용하는 것과 같은 것입니까? 출력의 수는 사용자가 설정하며 출력은 무작위이지만 중복되지 않아야합니다.Python random.sample과 random.choice와 IF 문
import random
def myRandom():
myOutput = input("How many suggestions would you like?")
outList = list()
counter = 1
myDict = {
"The First":1988,
"The Second:": 1992,
"The Third": 1974,
"The Fourth": 1935,
"The Fifth":2012,
"The Six":2001,
"The Seventh": 1994,
"The Eighth":2004,
"The Ninth": 2010,
"The Tenth": 2003}
while counter <= myOutput:
thePick = random.choice(myDict.keys())
if thePick in outList:
pass
else:
outList.append(thePick)
counter = counter + 1
print "These are your suggestions: {0}".format(outList)
myRandom()
내 출력 목록의 중복을받을 수없는 그래서이 무엇 random.sample가 아니라 어떻게해야입니다 : 여기 내 코드는?
'목록'대신'set'을 사용하면됩니다. – dursk
@mattm 아니, 작동하지 않습니다. 중복 값의 경우에도 세트에 삽입되지 않더라도 카운터가 증가합니다. (만약'list'가 있던'set' 이외의 다른 것을 바꾸는 것에 대해 이야기하고 있다면,이 코드에 어떤 영향도 미치지 않을 것입니다. (append 대신에'add'를 사용할 필요가 있습니다.) .. 그래서 나는'set'을'if ... else' 섹션을 "제거"하려고 시도하고 단지 항상'add'를 시도하고'set' 로직이 중복을 무시하도록 처리하도록 허용해야한다고 가정합니다 후드.) 당신은 또한 다운 스트림 코드가'list'를 요구할 수도 있다고 고려해야합니다. – ely
의견 및 제안에 감사드립니다. 이것은 실제로 도움이됩니다. 저는 여전히 Python에 대해 전혀 새로운 지식을 가지고 있습니다. 그리고 나는 여러분이 여전히 작동하기 위해서는 꽤 clunky 원형 교차로에서 일을한다고 말할 수있을 것이라고 확신합니다. :-) – user3646005