본문 바로가기
Programming/Python

파이썬 리스트, 튜플, 딕셔너리

by Tarake 2024. 8. 25.

리스트


mylist = ["apple", "banana", "cherry"]

변수를 한 개 두 개만 선언하는 경우라면 관리할 때 상관이 없겠지만 수 십 개가 넘어가면 관리하는데 어려움을 줍니다. 이러한 문제를 해결하고자 많은 언어에서 리스트 즉 배열을 도입하여 사용했습니다. 변수를 접근할 때는 변수명을 사용하듯이 리스트를 접근할 때는 리스트명[인덱스번호] 형식으로 리스트에 접근합니다.

lst = list(("a", "b", "c"))

리스트는 대괄호 형식으로 선언해도 되지만 위에 코드처럼 list()를 사용해서 리스트 생성이 가능합니다.

 

리스트의 길이를 알고 싶을 때는 len(list) 키워드를 사용하면 됩니다.

 

리스트 추가


thislist = ["apple", "banana", "cherry"]
thislist.append("orange")
print(thislist)

리스트를 추가하는 방식에는 여러 가지가 존재하는데 첫 번 째 방식은 append(넣을값) 라는 메소드를 사용하는 것입니다. 자바의 List<E> 컬렉션 프레임워크랑 비슷하게 파이썬의 리스트는 동작합니다. append() 메소드를 사용할 경우 리스트의 가장 마지막에 값을 추가하게 됩니다.

thislist = ["apple", "banana", "cherry"]
thislist.insert(1, "orange")
print(thislist)

리스트를 사용하면 중간에 삽입하는 연산이 필요할 때도 있습니다. 이러한 상황을 위한 메소드는 insert(위치, 넣을값) 메소드 입니다. 넣고 싶은 위치의 인덱스와 넣고싶은 값을 지정하면 해당 위치에 값이 저장되게 됩니다.

thislist = ["apple", "banana", "cherry"]
tropical = ["mango", "pineapple", "papaya"]
thislist.extend(tropical)
print(thislist)

리스트끼리 합치는 것도 가능합니다 위에 코드를 실행하게 되면 thislist 에 tropical 리스트를 이어붙이게 됩니다.

 

리스트 변경


thislist = ["apple", "banana", "cherry"]
thislist[1] = "blackcurrant"
print(thislist)

리스트의 값은 변경이 가능합니다. 변경하고 싶은 리스트의 인덱스 번호로 해당값에 접근해서 바꾸고 싶은 값으로 덮어쓰면 됩니다.

 

리스트 삭제


thislist = ["apple", "banana", "cherry"]
thislist.remove("banana")
print(thislist)

remove() 메소드는 지정한 값을 리스트에서 제거합니다. 만약 중복된 값이 있을 경우 첫 번째 값을 제거합니다.

thislist = ["apple", "banana", "cherry"]
thislist.pop(1)
print(thislist)

remove()메소드는 값을 지정해서 삭제한 것이라면 pop()메소드는 인덱스 번호를 지정해서 해당 인덱스를 제거합니다. 만약 pop() 메소드에 인덱스 번호를 지정하지 않으면 가장 마지막 인덱스를 제거합니다.

thislist = ["apple", "banana", "cherry"]
del thislist[0]
print(thislist)

del() 메소드 또한 인덱스 번호로 제거하지만 pop()메소드와 달리 인덱스 번호를 주지 않으면 리스트 전체를 제거합니다.

thislist = ["apple", "banana", "cherry"]
thislist.clear()
print(thislist)

del() 메소드에 인덱스를 주지 않을 경우에는 리스트를 삭제해서 사용할 수 없지만 clear() 메소드의 경우 리스트 값만 삭제하기 때문에 다시 사용할 수 있습니다.

 

리스트 정렬


thislist = ["orange", "mango", "kiwi", "pineapple", "banana"]
thislist.sort()
print(thislist)

리스트를 정렬시킬 수 있는데 sort() 메소드를 사용해서 리스트를 정렬합니다. 문자열의 경우 알파벳 순으로 정렬하고 숫자의 경우 크기 순서 리스트를 정렬합니다.

thislist = ["orange", "mango", "kiwi", "pineapple", "banana"]
thislist.sort(reverse = True)
print(thislist)

sort() 메소드를 그냥 사용하면 오름차순으로 배열이 정렬하는데 sort()메소드 안에 reverse=True 구문을 작성하면 내림차순으로 리스트를 정렬할 수 있습니다.

thislist = ["banana", "Orange", "Kiwi", "cherry"]
thislist.reverse()
print(thislist)

reverse() 키워드는 리스트의 순서를 반대로 하고 싶을 때 사용하는 메소드입니다. 위에 코드를 실행하면 cherry kiwi orange banana 순으로 리스트가 변경됩니다.

 

리스트 복사


copy() 메소드

thislist = ["apple", "banana", "cherry"]
mylist = thislist.copy()
print(mylist)

list() 메소드

thislist = ["apple", "banana", "cherry"]
mylist = list(thislist)
print(mylist)

슬라이스 연산

thislist = ["apple", "banana", "cherry"]
mylist = thislist[:]
print(mylist)

배열을 복사할 때 사용하는 방식에는 위에 3가지 방식을 사욯합니다. 

 

리스트를 이용한 반복문


thislist = ["apple", "banana", "cherry"]
for x in thislist:
  print(x)

자바에서 사용하는 forEach와 비슷하게 파이썬의 리스트 또한 순회하면서 반복할 수 있습니다.

 

튜플


mytuple = ("apple", "banana", "cherry")

튜플은 리스트와 마찬가지로 여러 항목을 하나의 변수에 저장하는 데 사용됩니다. 리스트와 달리 소괄호()로 생성하며 값을 수정할 수 없어 읽기 전용 자료를 저장할 때 사용합니다.

 

딕셔너리


thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}

딕셔너리는 쌍 2개가 하나로 묶인 자료구조입니다.

사전은 키:값 쌍으로 데이터 값을 저장하는 데 사용됩니다.

사전은 정렬되어 있고, 변경 가능하며, 중복을 허용하지 않는 컬렉션입니다.

 

딕셔너리 접근하기


thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
x = thisdict["model"]
x = thisdict.get("model")

키를 대괄호[] 혹은 get()메소드를 사용하면 키에 해당하는 값을 반환하여 x에는 Mustang이 저장됩니다.

x = thisdict.keys()

keys() 메소드는 딕셔너리의 모든 키값을 반환합니다.

x = thisdict.values()

keys() 메소드가 딕셔너리의 모든 키값을 반환했다면 values() 메소드는 딕셔너리에 저장된 모든 값을 반환합니다.

x = thisdict.items()

items() 메소드는 키와 값 을 전부 반환하는 메소드입니다.

thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
if "model" in thisdict:
  print("Yes")

in 키워드를 사용하면 키 값이 딕셔너리에 존재하는지 확인할 수 있습니다.

 

딕셔너리 값 변경


thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
thisdict["year"] = 2018

리스트의 변경과 비슷하게 리스트는 인덱스 번호를 주면 해당 번호의 리스트를 변경했습니다. 딕셔너리는 키를 통해 접근하여 해당 키의 값을 변경할 수 있습니다.

thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
thisdict.update({"year": 2020})

update() 메소드를 사용해서 값을 변경할 수 있습니다.

 

딕셔너리 추가


thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
thisdict["color"] = "red"
print(thisdict)
thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
thisdict.update({"color": "red"})

딕셔너리 값 변경과 비슷하게 변경할 키가 없으면 딕셔너리에 해당 키와 값을 저장합니다.

 

딕셔너리 제거


딕셔너리의 제거는 리스트의 제거와 비슷합니다.

thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
thisdict.pop("model")
print(thisdict)

pop() 메소드는 키가 존재하면 해당 키를 제거합니다.

thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
thisdict.popitem()
print(thisdict)

popitem() 메소드는 마지막에 위치한 딕셔너리를 제거합니다.

thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
del thisdict["model"]
print(thisdict)

del 로도 키를 제거할 수 있고 키를 주지 않으면 딕셔너리를 전체 삭제합니다. 

thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
thisdict.clear()
print(thisdict)

del 로 제거하면 딕셔너리를 사용할 수 없는데 clear() 함수를 사용시 딕셔너리를 비우는 것으로 딕셔너리를 다시 사용할 수 있습니다.

 

딕셔너리 복사


thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
mydict = thisdict.copy()
print(mydict)
thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
mydict = dict(thisdict)
print(mydict)

딕셔너리를 복사하는 방식은 두 가지로 copy() 혹은 dict() 메소드를 사용해서 복사합니다.

 

 

출처

W3school

 

W3Schools.com

W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.

www.w3schools.com

 

'Programming > Python' 카테고리의 다른 글

파이썬 상속  (0) 2024.08.25
파이썬 함수  (0) 2024.08.25
파이썬 문자열  (0) 2024.08.25
파이썬 기초구문  (0) 2024.08.25