파이썬 두 리스트에서 같은 원소의 갯수 구하기.
조회수 868회
import random
yi= 0
while yi != 1:
a =int(input('숫자를 입력하세요: '))
b =int(input('숫자를 입력하세요: '))
c =int(input('숫자를 입력하세요: '))
d =int(input('숫자를 입력하세요: '))
e =int(input('숫자를 입력하세요: '))
listme = [a, b, c, d, e]
gg = random.sample(range(1, 15),5)
r1 = random.sample(range(1, 15),5)
r2 = random.sample(range(1, 15),5)
r3 = random.sample(range(1, 15),5)
r4 = random.sample(range(1, 15),5)
r5 = random.sample(range(1, 15),5)
r6 = random.sample(range(1, 15),5)
r7 = random.sample(range(1, 15),5)
r8 = random.sample(range(1, 15),5)
r9 = random.sample(range(1, 15),5)
listme.sort()
gg.sort()
r1.sort()
r2.sort()
r3.sort()
r4.sort()
r5.sort()
r6.sort()
r7.sort()
r8.sort()
r9.sort()
yii=100 #0등이 나오지 못하게 100으로 작성함
menumber=0
r1n=0
r2n=0
r3n=0
r4n=0
r5n=0
r6n=0
r7n=0
r8n=0
r9n=0
n= [yii, menumber, r1n, r2n, r3n, r4n, r5n, r6n, r7n, r8n, r9n]
n.sort(reverse=True)
print('이번 당첨 번호: ',gg)
print('당신의 숫자: ',listme,'맞힌개수: ',menumber)
print('로봇1의 숫자: ',r1,'맞힌개수: ',r1n)
print('로봇2의 숫자: ',r2,'맞힌개수: ',r2n)
print('로봇3의 숫자: ',r3,'맞힌개수: ',r3n)
print('로봇4의 숫자: ',r4,'맞힌개수: ',r4n)
print('로봇5의 숫자: ',r5,'맞힌개수: ',r5n)
print('로봇6의 숫자: ',r6,'맞힌개수: ',r6n)
print('로봇7의 숫자: ',r7,'맞힌개수: ',r7n)
print('로봇8의 숫자: ',r8,'맞힌개수: ',r8n)
print('로봇9의 숫자: ',r9,'맞힌개수: ',r9n)
print('당신은', n.index(menumber), '등!')
mode=input('계속하시겠습니까? (y/n): ')
if mode == 'y':
yi=0
elif mode == 'n':
yi=1
인데요 여기에서 맞힌개수를 어떻게 표현하나요?
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
1 답변
-
파이썬의 set 이 이런 경우 유용합니다.
set 끼리 & 연산은 교집합을 구하게 되고, 교집합의 갯수를 len 으로 구하면 됩니다.
import random def main(): yi = 0 while yi != 1: # a =int(input('숫자를 입력하세요: ')) # b =int(input('숫자를 입력하세요: ')) # c =int(input('숫자를 입력하세요: ')) # d =int(input('숫자를 입력하세요: ')) # e =int(input('숫자를 입력하세요: ')) listme = [int(input("숫자를 입력하세요: ")) for _ in range(5)] gg = random.sample(range(1, 15), 5) # r1 = random.sample(range(1, 15),5) # r2 = random.sample(range(1, 15),5) # r3 = random.sample(range(1, 15),5) # r4 = random.sample(range(1, 15),5) # r5 = random.sample(range(1, 15),5) # r6 = random.sample(range(1, 15),5) # r7 = random.sample(range(1, 15),5) # r8 = random.sample(range(1, 15),5) # r9 = random.sample(range(1, 15),5) r = [random.sample(range(1, 15), 5) for i in range(9)] # listme.sort() # gg.sort() # r1.sort() # r2.sort() # r3.sort() # r4.sort() # r5.sort() # r6.sort() # r7.sort() # r8.sort() # r9.sort() # yii=100 #0등이 나오지 못하게 100으로 작성함 menumber = len(set(gg) & set(listme)) # r1n=0 # r2n=0 # r3n=0 # r4n=0 # r5n=0 # r6n=0 # r7n=0 # r8n=0 # r9n=0 rn = [len(set(gg) & set(r[i])) for i in range(9)] n = rn + [menumber] n.sort(reverse=True) print("이번 당첨 번호: ", gg) print("당신의 숫자: ", listme, "맞힌개수: ", menumber) # print('로봇1의 숫자: ',r1,'맞힌개수: ',r1n) # print('로봇2의 숫자: ',r2,'맞힌개수: ',r2n) # print('로봇3의 숫자: ',r3,'맞힌개수: ',r3n) # print('로봇4의 숫자: ',r4,'맞힌개수: ',r4n) # print('로봇5의 숫자: ',r5,'맞힌개수: ',r5n) # print('로봇6의 숫자: ',r6,'맞힌개수: ',r6n) # print('로봇7의 숫자: ',r7,'맞힌개수: ',r7n) # print('로봇8의 숫자: ',r8,'맞힌개수: ',r8n) # print('로봇9의 숫자: ',r9,'맞힌개수: ',r9n) # print('당신은', n.index(menumber), '등!') for i in range(9): print(f"로봇 {i+1}의 숫자: {r[i]} ,맞힌개수: {rn[i]}") print(f"당신은 {n.index(menumber) + 1} 등") mode = input("계속하시겠습니까? (y/n): ") if mode == "y": yi = 0 elif mode == "n": yi = 1 if __name__ == "__main__": main()
댓글 입력