2017-12-23 14 views
0

사용할 수있는 목록에서 5 개의 임의 번호를 선택한 다음 각각을 표시하는 간단한 스크립트를 만들려고합니다. 내가 가지고있는 문제는 결과를 추가 할 목록에 정수 나 문자열이 아니라 목록도 반환된다는 것입니다. 여기 코드는 다음과 같습니다목록에있는 파이썬 항목은 여전히 ​​목록입니까?

def randomStar(self): 
    choice = [5,4,3] 
    probability = [0.1, 0.2, 0.7] 
    star = random.choices(choice, probability) 
    return star 

multi = [] 
characters = [] 
for x in range(5): 
    star = randomStar(x) 
    multi.append(star) 
    x += 1 

for star in multi: 
    characters.append(star) 
print (characters) 
print (multi) 

는 둘 다 문자 목록을 반환 :

['[3]', '[3]', '[3]', '[5]', '[3]'] 

그래서 내가 아직 목록을 얻을 "멀티"목록을 반복 할 때. 값을 어떻게 얻을 수 있습니까? 또는 목록에 숫자가 잘못 추가되는 방식입니까?

감사합니다.

+2

이들은 목록이 아닙니다. 그것들은 문자열을 나타내며리스트를 나타냅니다 (어쨌든 유효한리스트 리터럴입니다). 실제로 어디에서나 문자열로 변환하는 것으로 보이지 않는다는 점을 감안할 때 분명하지 않습니다. 실제 [mcve]를주십시오. – jonrsharpe

+0

좋아요, 각 항목을 표시 할 때 [3], [4] 등의 정보를 얻습니다. 어떻게 3,4와 같은 번호 만 얻을 수 있습니까? – davidb

+0

그게 내가 가지고있는 모든 코드입니다. 유일한 것은 모듈을 가져 오는 것입니다. 추가 할 게 아무것도 없습니다 – davidb

답변

2

random.choices은 "k 크기의 요소 목록"을 반환하기 때문에 목록입니다.

목록에 요소가 하나 뿐이므로 반환하려는 요소가 있으므로 return star[0]을 작성하고 싶을뿐입니다.

+0

이것은 그 것이었다! 감사! – davidb