Python list method, dictionary
Scala 자료형과 Sequence 자료형이 무엇인지와 차이
Scalar 자료형의 정의 : 단일 값을 가지는 자료형
ex) 정수(int 42), 실수(float 3.19), 불린(bool True, False)
문자열(str Hello) 문자열 자체는 시퀀스지만 단일 문자열 변수는 스칼라로 간주될수 있다.
Sequence 자료형의 정의 : 여러 개의 값을 순서대로 나열한 자료형. 각 값은 인덱스로 접근가능
ex) 리스트[ 1,2,3 ], 튜플(1,2,3), 문자열 "hello" (인덱스로 접근가능),
Scalar와 Sequence의 차이점
구조 - Scalar는 단일값, Sequence는 여러값을 순서대로 저장
접근방식 - Scalar는 단일값을 직접 사용, Sequence는 인덱스를 통해 각 요소에 접근
사용 예- Scalar는 기본적인 연산(덧셈, 문자열의 결합) Sequence는 반복문을 통한 순회, 슬라이싱을 통한 부분 집합 접근
Python method(함수)
append(x)
append()는 리스트명.append(넣고싶은 값) 이라고 하면 맨 뒤에 값이 추가 됩니다.
insert(i,x)
insert()는 리스트명.insert(위치,요소) 라고 명령어를 쓰면 원하는 위치에 원하는 값이 추가가 됩니다.
list_a.insert(4,100)을 했으므로 1의 인덱스가 0부터 시작하니까 인덱스가 3인 4 이후에 100이 추가가 됩니다.
만약에 insert(0,100) 이라고 했으면 맨 앞에 100이 추가가 됐을것 입니다.
extend(iterable)
extend()는 리스트명.extend(iterable)이라고 쓰면 리스트에 iterable 형태의 값이 추가가 됩니다.
iterable이 무엇이냐면 "다음 값을 리턴할 수 있는 객체"라고 많이들 작성돼 있습니다.
이런식으로 1을 extend하면 int object는 iterable이 아니라고 추가 할수 없게 돼 있습니다.
하지만 따옴표를 사용해서 "a"를 extend하면 추가가 됩니다.
iterable의 예로는 sequence type인 list 자료형, str 자료형 ,tuple 자료형 이 대표적이라고 합니다.
del(x)
del()은 del 리스트명[위치] 라고 하면 그 위치에 있는 값을 없앨수 있습니다.
대괄호 안에 인덱스를 넣지않으면 오류가 발생한다.
그리고 del은 슬라이싱도 할수 있습니다.
pop() 키워드
pop()은 리스트명.pop(인덱스)라고 하면 해당하는 인덱스의 값이 제거됩니다.
하지만 del()과는 달리 인덱스 번호를 넣지않으면 맨 마지막에 있는 값을 없앱니다.
remove(x) 키워드
remove()는 리스트명.remove(값)라고 하면 해당하는 값이 제거됩니다.
만약 같은 값이 2개 이상있다면 인덱스가 "앞쪽" 인 값부터 삭제가 됩니다.
sort() 키워드
sort()는 리스트명.sort()라고 하면 오름차순으로 정렬이 되고 sort(reverse = True)라고 하면 내림차순으로 정렬이 됩니다.
in / not in 연산자
리스트 내부에 in 앞에 있는 값이 있는지 확인하는 연산자 입니다.
272가 아닌 273이였으면 리스트 내부에 존재하기 때문에 True가 출력이 됩니다!
튜플(tuple)
튜플은 리스트와 비슷한 자료형입니다. 인덱싱과 슬라이싱 둘다 가능합니다.
하지만 리스트와 다른 점은 한번 결정된 요소를 바꿀수 없다는 것입니다. (수정, 삭제 모두 불가능)
딕셔너리(dictionary)
JSON형태와 비슷하고 pandas 데이터프레임을 만들때도 매우 자주 사용 된다.
딕셔너리는 keys/values으로 이루어져있어서 함수가 따로 있다.
keys()는 딕셔너리의 key만 출력합니다.
values()는 딕셔너리의 values만 출력합니다.
items()는 key와 value끼리 소괄호로 묶어서 출력합니다.
이런 문제는 딕셔너리에서 인덱스로 접근하고 슬라이싱을 할줄 알아야됩니다.
complex_dict['languages']['programming'][0][-6:] 라고 입력하면 python이 출력 됩니다.
우선, complex_dict에서 ['languages']로 접근하고 ['programming']으로 접근합니다.
complex_dict['languages']['programming']만 작성하면
['Python is goood python', 'Java', 'C++']
이렇게 출력이 됩니다. 여기서 Python이 아닌 python만 출력하려면 두가지 방법이 있습니다.
1.앞에서부터 출력하기 2.뒤에서부터 출력하기
1.complex_dict['languages']['programming'][0][16:22]
2.complex_dict['languages']['programming'][0][-6:]
두 답변 모두 0번째를 골라서 'Python is goood python을 고르게 하고 부분 출력을 했습니다.
1번의 16:22하면 앞에서부터 슬라이싱해서 python이 출력되고 -6:라고 하면 뒤에서부터 6번째까지 출력됩니다.