본문 바로가기
SW.AI 트랙/python

[Python] 파이썬. 두 개 리스트를 비교하는 3가지 방법. for~if. set. sort

by AI 봇 2023. 3. 20.

두 개 리스트 비교하는 3가지 방법

 

1. 두 개의 리스트를 각각 반복하여 서로의 동일 객체 유무를 확인하는 방법.  for  ~ if

list1 = [1,2,3,4]
list2 = [1,2,3]

for i in list1:
    if i not in list2:
        print(i)

list 1을 기준값으로 하고, list2를 입력받아 비교하는 경우

list1 = [1,2,3,4]
a = input()
list2 = list(map(int,a))
 
for i in list1:
    if i not in list2:
        print(i)

list 1을 기준값으로 하고, list2를 입력받는 값이 list1 보다 많은 경우

list1 = [1,2,3,4]
a = input()
list2 = list(map(int,a))
 
for i in list1:
    if i not in list2:
        print("list2에 없는 값은 : ") 
        print(i)  

for i in list2:
    if i not in list1:
        print("list1에 없는 값은 : ")
        print(i)

두 개의 리스트가 문자인 경우 비교하기

List1 = ['A', 'B', 'C', 'D']		# List1 = list('ABCD')
a = input()
List2 = list(a)

for i in List1 :
    if i not in List2 :
        print("list2에 없는 값은 : ")
        print(i)

for i in List2 :
    if i not in List1  :
        print("list1에 없는 값은 : ")
        print(i)

 

2. set 타입으로 변경해서 비교하기

list를 set 맴버로 변경해서 비교하는 방법입니다.

List1 = [1,2,3,4,5]
a = input()
List2 = list(map(int,a))
SetList1 = set(List1)
SetList2 = set(List2)
print(SetList2 - SetList1)
print(SetList1 - SetList2)

print(SetList2.difference(SetList1))
print(SetList1.difference(SetList2))
123456
{6}
set()
{6}
set()

 

3. sort() == 연산자 사용해서 비교하기

sort() 함수를 이용하여 각 수들을 정렬하고 나서, 동일 여부를 확인하는 식입니다.

List1 = [1,2,3,4,5] 
List2 = [1,3,2,4,5] 

List1.sort() 
List2.sort() 

if List1 == List2 :
    print("OK") 
else :  
	print("Not Ok")

 

4. remove를 사용하는 방법

s = list('ABCDEFGHIJKLMNOPQRSTUVWXYZ')
for i in input():
    s.remove(i)
print(s[0])
s = input()
for c in 'ABCDEFGHIJKLMNOPQRSTUVWXYZ':
  if c not in s:
    print(c)