일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- os.path.join
- linalg.solve()
- list
- Heapreplace
- Python
- matplotlib
- np.save()
- set_index
- 필답형
- Math Function
- 빅데이터분석기사
- coding
- request Method
- np.savetxt()
- 실기
- numpy
- 빅데이터
- np.load()
- Collections
- 비가변매개변수
- DEEPLEARNING
- 가변매개변수
- BASIC
- array
- heapmerge
- kaggle
- 빅분기
- 작업형
- deg2rad
- namedTuple
- Today
- Total
맞춤형 플랫폼 개발 도전기 (웹개발, 딥러닝, 블록체인)
Python Basic 2 (Datatype : List, Tuple, Set, Dict) 본문
DataType을 분류하면 이 정도로 나눌 수 있겠다.
list → 순서 있음, 중복 허용, mutable
tuple → 순서 있음, 중복 허용, immutable
set → 순서 없음, 중복 허용 안함
dict → key, value 쌍으로 구성, 순서 없다.
List
리스트의 원소는 기본적으로 '어떤 타입이든'가능하다. 한 리스트 안에 int, str, float.. 등 모두 넣을 수 있다.
1. slicing
가장 잊기 쉬운 게 [end : start : -1] → 반대로 출력, [start : end : step] → end 직전까지만 slicing 이고
나머진 쉽다. slicing 부분은 Numpy에서 다차원 배열 slicing하는게 조금 헷갈린다.
Python Numpy Basic 1 (Array, Random)
Python에서는 대부분 함수 적용했을 때 원본이 변화되면 return 값이 없는데, 원본이 변화되지 않으면 return 값이 있음 (은근히 유욯하게 쓰인다 :) 잘 기억해 놓으면 활용도 多) Array 1. np.arange(iterable)
katieyoon-the-developer.tistory.com
slicing 이용해서 데이터를 중간에 삽입한다.
data[index] = 값 형태로 데이터 삽입하면 된다.
복수개의 원소를 삽입할 때는 data[ start : end ] = [ 원소1, 원소2, ... , 원소end-1 ] 형태로 삽입한다.
2. append(), extend(iterable)
append() : list.append(원소) 형태로 사용
extend(iterable) : list.append(iterable) 형태로 사용
extend : iterable이 들어오면 하나하나 다 찢어서 저장 (str이면 char단위로, list는 원소단위로)
3. del()
del(원소) 로 사용
변수도 삭제할 때 del(변수)사용
4. 다차원 List
list의 원소가 list라고 생각하면 된다.
indexing은 data[i][j][k] → data[i][j] 로 만드는 것인데, indexing을 한다는 것은 차원을 축소시키는 것이라 생각하면 쉽다. slicing 각 차원에 대해서 적용 가능하다
data = [
[1, 2, 3, 4, 5],
[10, 20, 30, 40, 50],
[11, 22, 33, 44, 55]
]
data[0][:3]
data[::2]
# [1, 2, 3]
# [[1, 2, 3, 4, 5], [11, 22, 33, 44, 55]]
6. index(value)
값의 index값을 찾는 것
7. remove(value)
값으로 list의 원소를 삭제한다.
처음으로 찾은 값만 삭제하고, 없는 값을 삭제하려고 하면 error 발생한다.
8. pop(생략 가능 value)
리스트의 맨 뒤의 원소가 리턴되고, 리스트에서 원소가 제거됨
※ 보통 return 값이 없으면 원본이 변화, return 값이 있으면 원본 변화 없음 (항상은 아니다)
9. sort(), sorted()
sort()는 기본적으로 오름차순 정렬시켜 주는 것으로, 원본이 변경된다.
옵션으로 reverse=True를 넣으면 내림차순으로 정렬된다.
sorted()는 원본을 변화시켜주지 않는다.
10. reverse()
reverse()는 반대로 뒤집는 것으로, 원본 변화된다.
11. in
값 in list(iterable) 형태로 사용한다.
리턴값은 True, False 둘 중 하나로, boolean 값이 리턴된다.
12. str과 변환 (str ↔ list)
list에서 하던 것처럼 indexing과 slicing 가능하다.
하지만, str은 immutable하기 때문에 중간에 값을 바꿀 수는 없다.
str도 sort할 수 있다.
다만, sorted(str) 형태로 쓰면 str 안의 모든 원소를 다 찢어서 sorting 해준다. (.sort() 이런 식으로 사용하지 않는다.)
당연히 원본 변화 없다.
myStr = 'Python'
sorted(myStr, reverse=True)
# ['P', 'h', 'n', 'o', 't', 'y']
Tuple
사실 모든 Python은 기본적으로 모든 게 Tuple 타입이다.
Tuple은 보통 ( ) 괄호 안에 comma 로 연결해서 만드는데 ( ) 괄호를 쓰지 않으면 자동으로 Tuple로 생성된다. (단, 2개 이상의 데이터 일때만 그렇다. 하나의 데이터를 Tuple로 저장하려면 끝에 , comma를 붙여줘야 한다)
Tuple은 immutable해서 원소를 변경할 수 없다. list처럼 변경이 안 된다는 것 (당연히 메소드도 없다.)
Set
만드는 방법은 { } 로 만들거나 set()로 만들 수 있다.
중복된 데이터를 지우는 함수처럼 생각해도 괜찮다.
list(set( data )) 하면 중복 지운 상태로 list로 만들 수 있다.
1. add()
2. remove()
둘 다 값을 지운다. (index 아님)
Dict
정말 자주 쓰는 데이터타입
dictionary 데이터 타입은 key-value 쌍으로 저장되는 데이터 집합이다
{Key1:Value1, Key2:Value2, Key3:Value3 ...} 형태로 작성되며 순서는 고정되지 않고, key는 중복 불가하다.
1. get( key값, key값이 없을 경우 무엇을 리턴할지 )
dict.get( key값, key값이 없을 경우 무엇을 리턴할지 ) 로 생성한다.
2. dict['키값'] = 값
수정, 추가 모두 똑같은 방식으로 한다. 키값이 존재하지 않으면 자연스럽게 새로 추가한다.
3. del( dict['키값'] )
삭제할 때는 이런 식으로 삭제한다. 삭제할 키값이 없으면 error다.
4. dict.keys(), dict.values()
keys 같은 경우에는 중복 안되니까 set( dict.keys() ) 로 만드는 것이 효율적이다.
5. dict.items()
[ i+j for i, j in dict_sample.items()] 이런 식으로 items() 이용해 key, value 나눠서 뽑아내는 형태 많이 사용한다.
5. in
in 연산자는 보통 key가 존재하는지 확인하는 용도로 사용
check_list = [3,4,5,6]
for i in sample_dict:
print(i in check_list)
'코딩' 카테고리의 다른 글
Python Basic 4 (Comprehension) (0) | 2021.11.03 |
---|---|
Python Basic 3 (Conditional : If , Loop : While, For) (0) | 2021.11.03 |
Python Basic 1 (Variable, Print, Input) (0) | 2021.10.30 |
Python Basic Preparation (0) | 2021.08.07 |
Python Coding : 최적 선택 그리디(Greedy) (0) | 2021.07.20 |