[python] 1. List
1. List란
원소들이 차례대로 나열되어 있는 선형자료구조.
원소들의 순서, 위치가 정해져 있다.
원소들의 중복이 허락된다.
다양한 자료형의 원소들을 저장할 수 있다.
어떤 위치에서도 원소의 삽입 및 삭제가 가능하다.
2. List의 생성
mudo = ["유재석", "박명수", "조세호"]
empty1 = [] # 빈 리스트도 생성이 가능하다
3. List Indexing
리스트에서 특정 한 요소만 선택할 수 있다.
index 값은 0부터 시작한다.
print(mudo[0])
0번 인덱스를 가진 유재석 이 출력된다.
그런데 만약 mudo 리스트에 존재하지 않는 3번 인덱스를 호출한다면?
print(mudo([3])
list의 범위 밖이라고 오류가 발생하며 실행이 중단된다.
4. List Slicing
문자열과 같이 슬라이싱을 통해 부분 요소들을 선택할 수 있다.
인덱스는 0부터 시작하며 마지막 인덱스는 (원하는 마지막 요소의 인덱스 + 1)을 의미한다.
mudo[1:]
mudo[:1]
mudo[1:3]
5. insert() 메소드
insert 메소드를 사용하면 리스트의 원하는 인덱스에 원소를 추가 할 수 있다.
mudo.insert(1, "정형돈")
1번 인덱스에 정형돈이 추가된 것을 확인할 수 있다.
6. append() VS extend()
insert 메소드와 같이 리스트의 끝에 원소를 추가하는 메소드이지만 리스트를 추가할 경우 그 결과는 다르다.
- append() : 리스트의 끝에 새 리스트가 추가되나 합쳐지지 않는다.
- extend() : 리스트의 끝에 새 리스트가 추가되며 확장된다.
mudo.append(["하하", "전진"]) mudo.extend(["하하", "전진"])
7. List 연산자
-
+연산자를 사용해 리스트를 이어 붙일 수 있다.
mudo = mudo + ["하하", "전진"]
extend() 메소드와 같은 결과를 보여준다.
-
곱하기 연산자를 사용해 횟수만큼 리스트를 이어 붙일 수 있다.
mudo = mudo*2
8. List에서 원소 제거
-
del
리스트의 인덱스를 활용해 원소를 제거하는 함수del mudo[3]
del mudo[3:5] # 슬라이싱 가능
-
remove()
리스트의 원소값을 활용해 원소를 제거하는 메소드
해당 원소에 중복이 존재하는 경우 첫번째 값만 삭제한다.mudo.remove("조세호")
-
slicing 활용
mudo[2:5] = [] # 2~4번 인덱스를 비운다
-
clear()
리스트의 원소를 모두 제거한다.mudo.clear()
9. List에서 항목 return하기
- pop() : 리스트의 마지막 항목을 리턴하고 리스트에서 삭제한다.
- pop(index) : index 위치의 항목을 리턴하고 리스트에서 삭제한다.
mudo.pop() mudo.pop(1)
10. List의 원소 갯수
- len()
유재석 부터 전진까지 6개의 원소 6이 출력된다.len(mudo)
11. List 정렬
- sort()
리스트의 원소를 순서대로 정렬한다.
정렬 순서는 ASCII 코드 순(숫자 -> 영문 대문자 -> 영문 소문자)temp = ['a','abc','ab','a1','A','AB','ABC','A1','1','12'] temp.sort()
- reverse()
리스트의 원소를 역순으로 정렬한다.temp = ['a','abc','ab','a1','A','AB','ABC','A1','1','12'] temp.reverse()
12. List 검색
다시 무한도전 멤버로 돌아와서
- index() : 리스트 안의 특정 원소의 인덱스를 검색할 수 있다.
첫번째 박명수의 인덱스인 1이 출력된다.mudo.index("박명수")
- count() : 리스트 안의 특정 원소가 몇 개 있는지 확인할 수 있다.
박명수 원소가 2개 있으므로 2가 출력된다.mudo.count("박명수")
13. List 복사
리스트를 복사하는데는 두가지 방식이 있다.
- 다른 변수가 한 리스트의 메모리 주소를 공유하는 것.
메모리 주소를 확인해보면a = [1,2,3,4] b = a
같은 리스트를 공유하는 것을 확인할 수 있다.id(a) id(b)
- 리스트를 복사해 새로운 리스트를 만드는 것.(slicing 활용, copy()메소드)
a = [1,2,3,4]
b = a[:]
id(a)
id(b)
a리스트와 b리스트는 다른 메모리 주소를 가진 것을 확인 할 수 있다.
a[2] = 5
따라서 a리스트의 값을 변경해도 b리스트에는 영향을 끼치지 않는다.
Author And Source
이 문제에 관하여([python] 1. List), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@kdh10806/python1list저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)