파이썬 서로 다른 리스트를 비교하여 동일한 값만 따로 추출하는 방법좀 알려주세요...(왕초보)
조회수 10975회
number1 = int(input("해당 숫자의 배수를 구하기 : "))
# 예를들어 3의 배수를 1부터 ~ 999까지 뽑아낸다고 가정합니다.
number2 = int(input("한번더 필터할 배수 설정하기 : "))
# 예를들어 5의 배수를 1부터 ~999까지 뽑아낸다 가정.
set1 = [] # number1에서 3의 배수를 추출한 리스트를 저장하는 곳
set2 = [] # number2에서 5의 배수를 추출한 리스트를 저정하는 곳
for i in range(1,1000):
if i % number1 == 0:
set1.append(i)
for i in range(1,1000):
if i % number2 == 0:
set2.append(i)
print(set1)
print(set2)
안녕하세요. 간단하게 두개의 input값을 받아 배수를 추출한 뒤 리스트를 생성하여 비교하여 동일한 값만 뽑아내는 방법을 공부 해보려고 하는데 리스트간의 같은 값 비교를 어떻게 해야되는지 모르겠네요.... 왕초보 적인 질문인거 같은데, 방법좀 알려주세요 ㅠㅠㅠ
-
(•́ ✖ •̀)
알 수 없는 사용자
3 답변
-
안녕하세요
results = [] for s1 in set1: if s1 in set2: results.append(s1) print(results)
이 코드를 추가하면 될것 같습니다.
원래 리스트간의 비교를 하려면
results = [] for s1 in set1: for s2 in set2: if s1 == s2: results.append(s1) print(results)
이렇게도 많이씁니다. 하지만 파이썬에는 if in 문법이 있어서 값이 리스트에 있는지 쉽게 확인할수있습니다.
수고하세요!
- 우와....감사합니다. 실행해보니 잘되네요. 좀더 공부해야겠네요 갈길이 멉니다.. 감사합니다. 알 수 없는 사용자 2019.3.7 16:38
- 헉..대단한것도 아닌데 도움이 되셨다니 다행이네요. 공부도 화이팅하세요 ~! 최진우 2019.3.7 21:19
-
같은 것인데 짧게 표현하면 이렇게도 할 수 있어요. 공부하신다고 하니, 이런 표현법도 익혀 보세요!
lst1 = [4, 9, 1, 17, 11, 26, 28, 54, 69] lst2 = [9, 9, 74, 21, 45, 11, 63, 28, 26] lst3 = [value for value in lst1 if value in lst2] print(lst3)
-
(•́ ✖ •̀)
알 수 없는 사용자
-
-
교집합은 아래와 같이 구하면 됩니다.
lst1 = [4, 9, 1, 17, 11, 26, 28, 54, 69] lst2 = [9, 9, 74, 21, 45, 11, 63, 28, 26] set(lst1).intersection(lst2) {9, 11, 26, 28}
댓글 입력