| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
- Transformer
- 알고리즘
- 딥러닝
- dementional reduction
- 트랜스포머
- 데이터 시각화
- ASR
- CNN
- 소프트웨어 개발
- TTS
- RNN
- 데이터엔지니어
- LangGraph
- python기초
- 에이전트
- 정보처리기사
- 기초
- UMAP
- SQL
- RDBMS
- python 기초
- Python
- 머신러닝
- 랭그래프
- 객체지향
- 자연어처리
- 생성형 인공지능
- CLIP
- 힙정렬
- 캐글
- Today
- Total
수달이네 기술 블로그
7. 리스트(list 자료형의 기능, 함수 등..) 본문
🔍시퀀스 자료형
순서를 가진 모든 요소들의 집합을 시퀀스 자료형이라 한다.
- 문자열
- 바이트 시퀀스
- 바이트 배열
- 리스트
- 튜플
- range 객체
위같은 자료형은 인덱스로 접근할 수 있으며 순서를 가지고 있다.
대부분의 시퀀스 자료형은 아래의 기능을 사용가능한데,
| 함수or 연산자 | 설명 | 예 |
| + | 2개의 시퀀스 연결 | [1.2] + [3,4,5] #[1,2,3,4,5] |
| * | 반복 | [’Hi’]*3 #[’Hi’,’Hi’,’Hi’] |
| len() | 길이 계산 | len([1,2,3]) #3 |
| in | 소속 | 3 in [1,2,3] #True |
| not in | 소속하지 않음 | 3 not in [1,2,3] #False |
| [] | 인덱스 | mylist[i] #mylist의 i번째 요소 |
| [start:end] | 슬라이싱 | mylist[1:3] #2번째~4번째요소 |
| min() | 시퀀스에서 가장 작은 요소 | min([1,2,3]) #1 |
| max() | 시퀀스에서 가장 큰 요소 | max([1,2,3]) #3 |
| for | 반복 | 리스트 반복 |
🔍리스트
파이썬에서의 리스트는 타 언어의 배열에 비하여 사용하기 편리한 특징들이 있다.
#리스트 생성 방법
list1 = list() #공백 리스트 생성
list2 = list("Hello") #문자 H,e,l,l,o를 요소로 가지는 리스트 생성
list3 = list(range(0,5)) #0,1,2,3,4를 요소로 가지는 리스트 생성
#위의 생성방식은 아래와 같음
list1 = [] #공백 리스트 생성, 하나하나 요소를 넣어주는것은 2,3으로 할 수 있음.
위는 파이썬 리스트 선언 방법이다.
🔍파이썬 리스트의 특징
여러 타입을 가변적으로 넣을 수 있다.
list1 = [12, "dog", 198.3]#혼합 자료형
파이썬은 이전에 말했듯 하나하나를 그냥 객체로서 보기 때문에 리스트를 생성할때도 자료형에 구애받지 않고 넣을 수 있다.
정적으로 크기를 설정하지 않고 가변적으로 추가가능하다.
score = []
score.append(int(input("Enter score: "))) #append() 메서드
int score[100];
int *score = (int*)malloc(sizeof(int)*n);
위와 같은 식으로 c언어의 경우 정적배열 선언과 동적배열 선언 모두 선언시 크기가 정해지지만,
파이썬의 경우 선언할때 크기를 정하지 않고, 내용을 하나하나 추가해가는 식이다.
🔍인덱싱(indexing), 슬라이싱(slicing)
인덱싱: 시퀀스에서 하나의 요소를 인덱스 연산자를 통해 접근하는 것을 의미한다.([대괄호])
슬라이싱: 리스트 내에서 범위를 지정해서 원하는 요소들을 선택하는 연산이다.([:(콜론)])
list = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]
print("0번째 요소 index: ",list[0])
print("3~6번째 요소 slicing: ", list[3:6])
# 0번째 요소 index: 1
# 3~6번째 요소 slicing: [4, 5, 6]
🔍 리스트의 다양한 기능
in: 내용 탐색
message = input("input message: ")
if 'z' in message:
print("z in!")
리스트 내의 요소를 간단하게 찾을 수 있다.
리스트.insert(인덱스, 내용): 원하는 위치에 인덱스 삽입
list = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]
list.insert(2,'hello')
print(list)
#[1, 2, 'hello', 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
인덱스의 자리에 내용을 삽입하고 원래 그 인덱스는 뒤로 밀려난다.
리스트.index(찾는내용): 원하는 내용을 탐색 후 인덱스 반환
list = ["a", "b", "c", "d", "e"]
print(list.index("c"))
#2
원하는 내용을 찾고 찾은 내용이 있던 인덱스를 반환해준다.
리스트.pop(인덱스): 인덱스의 내용을 제거, 반환
list = ["a", "b", "c", "d", "e"]
print(list.pop(2))
print(list)
# c
# ['a', 'b', 'd', 'e']
인덱스 내용을 반환하고 해당 리스트에서 내용을 삭제한다.
리스트.remove(찾는내용):내용 탐색 후 제거
list = ["a", "b", "c", "d", "e"]
list.remove("a")
print(list)
# ['b', 'c', 'd', 'e']
내용을 탐색 후 해당 내용에 해당하는 내용을 제거한다.
리스트 비교 연산자: 리스트 2개를 비교
list1 = list("abc")
list2 = list("ab")
if list1 > list2:
print(list1)
else:
print(list2)
#['a', 'b', 'c']
리스트 2개를 비교하고 True, False를 반환한다.
==: 2개의 리스트 값들이 모두 일치해야한다.
>: 앞의 리스트 부터 하나하나 검사해서 더 큰 값가진 것을 반환
만약 같은 값일 경우 같은 더 긴 리스트가 큰것임. 왼쪽이 크다면 True아니면 False를 반환
나머지 비교연산자도 동일
리스트.sort([reverse = True,False]):리스트를 정렬(reverse 값은 역순인지 설정)
list = [4,1,2,3,5,7,1,2]
list.sort()
print(list)
#[1, 1, 2, 2, 3, 4, 5, 7]
sorted(리스트, [reverse = True,False]): 원래 리스트는 그대로 두고 정렬한 리스트를 반환
li = [3,1,2,4,5]
li2 = sorted(li,reverse=True)
print(li)
print(li2)
# [3, 1, 2, 4, 5]
# [5, 4, 3, 2, 1]
li = sorted("A picture is worth a thousand words.".split(),key=str.lower)
print(li)
#['A', 'a', 'is', 'picture', 'thousand', 'words.', 'worth']
위의 내용은 split()을 이용해 공백으로 분리한 후 문자열에 따라 정렬함.
'언어 > Python' 카테고리의 다른 글
| 9. 자료구조 (9) | 2025.08.27 |
|---|---|
| 8. 리스트2(리스트 관련 함수들, 리스트 함축...) (6) | 2025.08.26 |
| 6. 함수2(Call-by-value,reference, 람다식, 튜플, 모듈 등...) (6) | 2025.08.25 |
| 5. 함수 (0) | 2025.08.23 |
| 4. 자주 쓰이던 함수 (0) | 2025.08.22 |