리스트 에서 인덱스를 두개 추출할 수 있나요(for 이용해서..)
조회수 434회
지수영철희를 조합해서, 이름을 뽑아내(예> 지희, 수철, 영수 등)려고 했습니다. 그래서 원하는 결과값은
지희 40 150
수철 50 200
영수 45 190
....
이렇게 얻고 싶었습니다
리스트 안의 요소를 두가지를 뽑을 수 있을까요?
for i, j in hanguls
를 하고 싶었습니다 그게 안되서 아래처럼 머리 굴렸는데 또 오류가 뜨네요.
import random
hanguls = list("지수영철희")
for i in hanguls:
for j in hanguls.remove(i):
name = i+j
weight = random.randrange(40,100)
height = random.randrange(140,200)
print("{} {} {} \n".format(name, weight, height))
아래는 오류 내용입니다.
Traceback (most recent call last):
File "C:\Users\Taewook Kim\Desktop\Programming\PracticePython\practice.py", line 4, in <module>
for j in hanguls.remove(i):
TypeError: 'NoneType' object is not iterable
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
2 답변
-
이러면 될 것 같습니다.
import random hanguls = '지수영철희' a = [] for i in range(len(hanguls)): while 1: c = random.randrange(0, len(hanguls)) if c != i: break name = hanguls[i] + hanguls[c] weight = random.randrange(40, 100) height = random.randrange(140, 200) print("{} {} {}\n".format(name, weight, height)) >> 지철 95 159 수지 64 188 영지 66 164 철수 43 159 희철 50 145
- 감사합니다 명료하네요.! 더 열심히 공부하겠습니다 알 수 없는 사용자 2021.3.17 12:47
- 이름 추출 방식을 약간 변경했으니 확인해주세요. 초보자 2021.3.17 12:48
-
itertools 의 permutations 를 사용하면 됩니다.
>>> h = list("지수영철희") >>> from itertools import permutations >>> names = list(permutations(h, 2)) >>> names [('지', '수'), ('지', '영'), ('지', '철'), ('지', '희'), ('수', '지'), ('수', '영'), ('수', '철'), ('수', '희'), ('영', '지'), ('영', '수'), ('영', '철'), ('영', '희'), ('철', '지'), ('철', '수'), ('철', '영'), ('철', '희'), ('희', '지'), ('희', '수'), ('희', '영'), ('희', '철')] >>> names = [ ''.join(e) for e in permutations(h, 2) ] >>> names ['지수', '지영', '지철', '지희', '수지', '수영', '수철', '수희', '영지', '영수', '영철', '영희', '철지', '철수', '철영', '철희', '희지', '희수', '희영', '희철'] >>>
댓글 입력