Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 스크래핑
- 변수 선언
- stringr
- TXT
- 함수
- R 기초
- :
- vector 연산
- 문자열처리
- R 개요
- Crawling
- seq
- factor
- ROTTEN TOMATOES
- working directory
- 연습문제
- data frame
- CSV
- vector 비교
- length
- 데이터 입출력
- Names
- scraping
- REP
- 데이터 타입의 우선순위
- 정규표현식
- c()
- Data Structure
- 데이터 타입
- 네이버 영화 댓글
Archives
- Today
- Total
study blog
Python 자료구조 1 - Sequence type(list, tuple, range) 본문
Python/2. built in types
Python 자료구조 1 - Sequence type(list, tuple, range)
ivo_lee 2020. 1. 23. 11:06# 자료구조
- Sequence 타입: list, tuple
- Mapping 타입: dict
- Set: set
1. Sequence Type
1) list
- 임의의 객체를 순차적으로 저장하는 자료구조
- 기호로는 [ ] (대괄호)를 이용
myList = list() # 비어있는 list를 생성
myList = [] # list를 literal(코드상으로 표현)로 표현
myList = [1,2,3] # 3개의 값을 가지는 list를 생성
myList = [1,3.14,True,"아우성"] # 모든 데이터 타입 사용가능
myList = [10,["Show","me","the","money"],3.14,True] # list안에 list가능 (중첩구조)
# list안에 또 다른 자료구조들을 넣을 수 있음!
print(myList[2]) # 3.14
print(myList[1][3]) # money
print(myList[-1]) # True
print(myList[0:1]) # [10] #list형태로 나옴(slicing) - slicing결과는 원본 자료구조와 같게나옴
print(myList[1][2:]) # ['the','money']
# list의 연산
a = [1,2,3]
b = [4,5,6]
print(a+b) # [1,2,3,4,5,6] 문자열 연결
print(a*3) # [1,2,3,1,2,3,1,2,3] 문자열 3번 반복
# list의 indexing & slicing
a = [1,2,3]
a[0] = 5 #a : [5,2,3]
a[0:1] = [7,8,9]
print(a) # [7,8,9,2,3] # 대체시켜라
a = [1,2,3]
a[0:2] = [7,8,9]
print(a) # [7,8,9,3]
a = [1,2,3]
a[1:] = [] # slicing 한 부분을 다른 리스트로 대체
print(a) # [1]
a = [1,2,3]
a[0] = [7,8,9] # list안에 list -> 1 대신 [7,8,9]
print(a) # [[7, 8, 9], 2, 3]
# 값 제거시
# 2를 지우고 싶을 경우
a = [1,2,3]
a[1:2] = []
# del a[1] # 같은 방법
# list에 적용할 수 있는 함수
# append
- list 마지막에 붙이는 함수
- append는 맨 마지막 칸을 생성 후 그 안에 데이터를 집어넣는 것 -> 리스트로 들어가짐
a = [1,2,3]
a.append("Hello") # [1, 2, 3, 'Hello']
a = [1,2,3]
a.append([4,5,6]) # [1,2,3,[4,5,6]]
# extend
- 뒤쪽에 리스트를 넣는 함수
- 리스트 확장
a = [1,2,3]
a. extend([4,5,6]) # [1,2,3,4,5,6]
# list 정렬 함수
- a.sort() :리스트가 가지고 있는 함수
- sorted() : 파이썬이 가지고 있는 함수
# a.sort()
result = a.sort()
print(result) # None
print(a) # [1, 3, 4, 6, 7, 8, 9] -> 원본이 변경 -> 의미없음!
print(a.sort()) # 이렇게 써줘야 함
# sorted(a)
- a는 불변, result는 정렬된 결과
a = [7,3,9,4,6,1,8]
result = sorted(a)
print(a) # 원본
print(result) # 정렬된 값
# 문자열 정렬
# 정렬의 기본(오름차순) - 문자일 경우 ASCII 코드표 따름 - 대문자 숫자 < 소문자 숫자
a = ["Hello","kaka","World","haha"]
a.sort()
print(a) #['Hello', 'World', 'haha', 'kaka']
a = ["홍길동","최길동","아이유","김연아","신사임당"]
a.sort()
print(a) # ['김연아', '신사임당', '아이유', '최길동', '홍길동']
# reverse(): 순서를 역으로 변환
a = ["홍길동","최길동","아이유","김연아","신사임당"]
a.reverse()
print(a) # ['신사임당', '김연아', '아이유', '최길동', '홍길동']
# 내림차순 할 경우
a.sort(reverse=True)
print(a) #['홍길동', '최길동', '아이유', '신사임당', '김연아']
print(sorted(a,reverse=True)) # ['홍길동', '최길동', '아이유', '신사임당', '김연아']
# a.index(value) : list 내의 값 위치 찾기
a = [1,2,3,4,5]
print(a.index(2)) # 1 # 2의 위치 찾아서 index 번호 알려줌
print(a.index(4)) # 3 # 4의 위치 찾아서 index 번호 알려줌
# a.insert(index number, val) : list에 값 삽입
a = [1,2,3,4,5]
a.insert(0,"Hello") # index 0 번에 Hello 넣을 것이다 -> 나머지 값 밀림 (대체가 아니라 삽입)
print(a) # ['Hello', 1, 2, 3, 4, 5]
# a.remove(val) : 처음 나오는 값 1개 삭제
a = [1,2,3,4,5,1,2,3,4,5]
a.remove(3)
print(a) # [1, 2, 4, 5, 1, 2, 3, 4, 5]
# a.pop() : 지정한 요소 삭제
a = [1,2,3,4,5]
print(a.pop()) # 5 # 맨 마지막 요소를 뜯어온다
print(a) # [1,2,3,4] -> 5 삭제되어 있음
print(a.pop(2)) # 3 # 지정한 index의 값을 뜯어옴
# a.count(val): val이 a 안에 몇 개 있는지
a=[1,2,3,4,5,1,2,1,3,4]
print(a.count(1)) # 3 # 1이 몇 개 있는지 세라
# == , is: 같은 변수인지 파악
a = 100
id(a) # 메모리 주소 (hash값) # 1427553600
a = [1,2,3]
b = [1,2,3]
print(a == b) # True # a와 b의 내용이 같은지
print(a is b) # False # a와 b가 완전히 동일한 것인지 -> 주소 다름
a = [1,2,3]
b = a # 주소를 복사한 것
print(a is b) # True
b = a[:] # a의 시작부터 끝까지 slicing해라 -> 새로운 것이 생성
print(a is b) # False
2) tuple
- Sequence Type
- list와 거의 동일
- 표현하는 방식이 다름
- list는 대괄호로 표현 []
- tuple은 소괄호로 표현 (1,2,3)
a = ( ) # 비어있는 튜플
print(type(a)) # <class 'tuple'>
myList = [1] # 가능. 요소가 1개인 리스트.
print(type(myList)) # print(type(myList))
myTuple = (1) # 요소가 1개인 튜플은 불가능
print(type(myTuple)) # <class 'int'>
myTuple = (1,) # 튜플임을 나타내기 위해 , 찍어주기
print(type(myTuple)) # <class 'tuple'>
# tuple은 list와 비슷! -> indexing, slicing 가능
myTuple = (1,2,3)
print(myTuple[0]) # 1
print(myTuple[0:2]) # (1,2) # 튜플에서 slicing하면 튜플 나온다
# myTuple[0] = 100 # 에러 ! 튜플은 값을 바꿀 수 없음 ! 값을 얻어올 수는 있지만 바꿀 수는 없음.
myTuple = (1,2,3)
myTuple = 1,2,3 # 동치 -> 괄호 생략 가능. 이것도 튜플
a,b,c = 10,20,30
(a,b,c) = (10,20,30) # 동치. a에 10, b에 20, c에 30 넣어라
print(a) #10
# list와 tuple
a = [1,2,3] # list
b = tuple(a) # list -> tuple
c = list(b) # tuple -> list
3) sequence type : range
range1 = range(10) # 1부터 10까지 단조증가
print(range1) # range(0, 10)
print(type(range1)) # <class 'range'>
range2 = range(1,11,2) # range(시작,끝(포함안됨),증감폭) # [1,3,5,7,9]형태로 인식하면 됨
print(range2)
# 숫자 영역을 잡는 range는 일반적으로 for구문을 사용할 때 많이 이용
'Python > 2. built in types' 카테고리의 다른 글
Python 자료구조 3 - set (0) | 2020.01.26 |
---|---|
Python 자료구조 2 - Mapping type(dict) (0) | 2020.01.26 |
Python 내장 데이터 타입 - numeric, text, bool (0) | 2020.01.23 |
Comments