본문 바로가기
반응형

5-1. 파이썬 제공 기본 자료구조53

[파이썬]리스트 안에 여러 딕셔너리가 들어있는데, 각 딕셔너리에서 첫번째 value 값만 가져오는 방법 코드는 아래와 같습니다. my_list = [{"key1": "value1_1", "key2": "value1_2"}, {"key1": "value2_1", "key2": "value2_2"}] first_values = [] for my_dict in my_list: first_values.append(list(my_dict.values())[0]) print(first_values) 2023. 5. 13.
[파이썬] 리스트의 모든 원소 반올림 하는 방법 파이썬의 내장함수인 round 함수는 리스트에 적용할 수 없습니다. 리스트에 적용이 가능한 반올림 함수는 numpy 패키지의 round 함수입니다. 먼저 넘파이 패키지를 불러옵시다. import numpy as np 아래와 같은 리스트를 하나 만들어줍시다. a=[1.11,2.22,3.33,4.44,5.55] np.round 함수를 이용하여 반올림을 해줍시다. >>> np.round(a,1) array([1.1, 2.2, 3.3, 4.4, 5.6]) 리스트의 차원이 더 높아도 가능한지 확인해봅시다. >>> b=[[1.11,2.22],[3.33,4.44]] >>> np.round(b,1) array([[1.1, 2.2], [3.3, 4.4]]) 가능합니다. 2023. 5. 3.
[파이썬] 리스트 원소를 복사할 때 기존 리스트 영향 안받게 복사하기 1. 종속적인 복사 (얕은 복사) 아래와 같은 리스트가 있다고 합시다. a=[1,2,3,4,5] a를 b에 아래와 같이 복사합시다. b=a 만약 a를 변경하면 b도 변경됩니다. >>> a.remove(1) >>> b [2, 3, 4, 5] a를 변경해도 b는 변경되지 않도록 복사하고 싶은 경우 사용하는 방법이 copy 메소드입니다. 2. 독립적인 복사 (깊은 복사) a를 다시 정의하고 아래와 같이 복사합시다. >>> a=[1,2,3,4,5] >>> b=a.copy() a를 변경해도 b가 변하지 않습니다. >>> a.remove(1) >>> b [1, 2, 3, 4, 5] 2023. 5. 3.
[파이썬] 리스트 원소를 랜덤하게 썪는 방법 (random.shuffle) 아래와 같은 리스트가 있습니다. a=[1,2,3,4,5,6,7,8,9,10] 순서를 랜덤하게 섞어봅시다. random 패키지의 shuffle 함수를 사용합니다. >>> import random >>> random.shuffle(a) >>> a [5, 8, 1, 2, 4, 9, 3, 6, 10, 7] 리스트 a가 랜덤하게 섞인 것을 알 수 있습니다. 2023. 5. 2.
[파이썬] 리스트의 마지막 요소를 삭제하고 반환 (pop) 아래와 같은 리스트가 있습니다 . a=[1,2,3,4,5] pop 메소드를 아무 입력값 없이 사용하면 리스트의 마지막 값을 제거하며 반환합니다. >>> a.pop() 5 마지막 값이 제거되었나 확인해봅시다. >>> a [1, 2, 3, 4] 2023. 5. 2.
[파이썬] 리스트 각 원소에 원하는 함수 적용하기 (map) 리스트의 각 원소에 원하는 함수를 적용하는 방법입니다. 아래와 같은 형식으로 사용합니다. list(map(함수이름,리스트이름)) 아래는 리스트 각 원소를 실수로 바꾸는 방법입니다. >>> mylist=['1.3','5.5','1.2e7'] >>> list(map(float,mylist)) [1.3, 5.5, 12000000.0] 2022. 5. 23.
[파이썬] 리스트가 비어있는지 확인하는 방법 비어있는 리스트를 하나 정의합시다. mylist=[] 1) 길이가 0인지 확인 >>> len(mylist)==0 True 2) not 연산자 사용 리스트가 비어 있을 경우 not 연산자의 결과가 True >>> not mylist True 2022. 5. 20.
[파이썬] 리스트 할당과 복사 (2차원 배열에서는 왜 안될까) 아래와 같이 a라는 리스트를 정의해봅시다. >>> a=[1,2,3] b에 a를 할당합니다. >>> b=a >>> b [1, 2, 3] b를 수정하면 a가 바뀔까요. 바뀌지 않을까요? 한번 수정해봅시다. >>> b[0]=2 >>> a [2, 2, 3] a도 함께 바뀝니다. copy 메소드 만약 b를 a와 같게 정의하고, 이후에는 b만 독립적으로 사용하려면 어떻게 해야 할까요? copy 메소드를 사용하면 됩니다. copy 메소드로 b를 정의해봅시다. >>> a=[1,2,3] >>> b=a.copy() >>> a [1, 2, 3] >>> b [1, 2, 3] b의 원소를 바꿔봅시다. >>> b[0]=50 >>> a [1, 2, 3] >>> b [50, 2, 3] b만 변경되었습니다. copy 메소드에는 한계가.. 2021. 11. 9.
[파이썬 기초] 딕셔너리(Dictionary) 의 key 수정 딕셔너리를 하나 정의합시다. >>> Dic={'Apple':'사과','Banana':'바나나','Plum':'자두'} >>> Dic {'Apple': '사과', 'Banana': '바나나', 'Plum': '자두'} Key값에 직접 접근하여 수정하는 것은 불가능하고, 삭제후 추가를 통한 일종의 편법입니다. >>> Dic["AAPPLE"]=Dic.pop('Apple') >>> Dic {'Banana': '바나나', 'Plum': '자두', 'AAPPLE': '사과'} 2021. 9. 30.
리스트 인덱싱과 슬라이싱 음수로 하는법 확장자 등을 제거하기 위해 리스트 인덱싱을 거꾸로 해야하는 경우가 있습니다. 예를 들어봅시다. 인덱싱 >>> L=[1,2,3,4,5,6] >>> L[-1] 6 >>> L[-2] 5 >>> L[-3] 4 -1 부터 인덱스로 사용합니다. 슬라이싱 슬라이싱도 가능합니다. >>> L[-3:-1] [4, 5] -1까지 슬라이싱해도 리스트의 끝까지 슬라이싱이 되지 않습니다. 리스트의 끝까지 슬라이싱 하려면 아래와 같이 입력합니다. >>> L[-3:] [4, 5, 6] 2021. 5. 20.
[파이썬 기초] 리스트 생성 시 값만 참조하는 방법 [파이썬 기초] 리스트 생성 시 값만 참조하는 방법 A라는 리스트를 만들고, A를 참조하여 B를 만들었다고 합시다. >>> A=[1,2,3]>>> B=A>>> B[1, 2, 3] 위와 같이 참조할 경우 A의 일부가 바뀌면 B가 함께 바뀐다는 문제가 있습니다. >>> A[0]=100>>> B[100, 2, 3] 물론 의도한 것이라면 상관 없습니다. 만약 의도한 것이 아니고, A의 일부가 바뀌어도 B가 바뀌지 않길 원한다면 아래와 같이 B를 정의해주면 됩니다. >>> A=[1,2,3]>>> B=A[:]>>> B[1, 2, 3] A의 일부를 수정해봅시다. >>> A[0]=1000>>> B[1, 2, 3] B가 바뀌지 않은 것을 알 수 있습니다. 2020. 11. 10.
[파이썬 기초] 리스트 생성 시 주의할 점 (리스트 참조) [파이썬 기초] 리스트 생성 시 주의할 점 (리스트 참조) 리스트를 참조하여 생성할 때 주의할 사항이 있습니다. 이해를 위해 예를 하나 들겠습니다. 리스트 A를 정의하고, A를 참조하여 B를 만들겠습니다. >>> A=[1,2,3]>>> B=A>>> B[1, 2, 3] 만약 A를 통채로 바꾸면 B가 어떻게 될까요? >>> A=[10,20]>>> B[1, 2, 3] B는 처음에 참조한 값에서 바뀌지 않습니다. 그렇다면 한번 참조한 뒤에는 A의 변화가 B에 영향을 미치지 않는걸까요? 다시 A를 정의하고, A를 참조하여 B를 만들어봅시다. >>> A=[1,2,3]>>> B=A>>> B[1, 2, 3] 이번에는 A의 첫번째 원소만 바뀌봅시다. >>> A[0]=100>>> B[100, 2, 3] B가 바뀌었습니다... 2020. 11. 10.
[파이썬 기초] 부분집합 여부 확인 [파이썬 기초] 부분집합 여부 확인 부등호를 이용합니다. >>> A={1,2,3}>>> B={1,2} >>> A>> B 2020. 11. 6.
[파이썬 기초] set 합집합,교집합,차집합,대칭차집합 구하는 법 (연산자 이용) [파이썬 기초] set 합집합,교집합,차집합,대칭차집합 구하는 법 (연산자 이용) 두 set 정의합시다. a={1,2,3,4,5}b={3,4,5,6,7} 합집합 or 연산자인 | 를 사용합니다. >>> a|b{1, 2, 3, 4, 5, 6, 7} 교집합 or 연산자인 &를 사용합니다. >>> a&b{3, 4, 5} 차집합 >>> a-bOut[182]: {1, 2} 대칭차집합 >>> (a-b)|(b-a)Out[183]: {1, 2, 6, 7} 2020. 11. 4.
[파이썬 기초] set 합집합,교집합,차집합,대칭차집합 구하는 법 (메소드 이용) [파이썬 기초] set 합집합,교집합,차집합,대칭차집합 구하는 법 (메소드 이용) 두 set 정의합시다. a={1,2,3,4,5}b={3,4,5,6,7} 합집합 >>> a.union(b){1, 2, 3, 4, 5, 6, 7} 교집합 >>> a.intersection(b){3, 4, 5} 차집합 >>> a.difference(b){1, 2} 대칭차집합 >>> a.symmetric_difference(b){1, 2, 6, 7} 2020. 11. 4.
[파이썬 기초] set 원소 추가, 삭제 방법 [파이썬 기초] set 원소 추가, 삭제 방법 set을 하나 정의합시다. >>> a={1,2,3,4,5} >>> a {1, 2, 3, 4, 5} 원소 추가 (add 메소드) >>> a.add('a') >>> a {1, 2, 3, 4, 5, 'a'} 원소 여러개 추가 (update 메소드) >>> a={1,2,3,4,5} >>> a.update([7,8,9]) >>> a {1, 2, 3, 4, 5, 7, 8, 9} 원소 삭제 (remove 메소드) >>> a={1,2,3} >>> a.remove(2) >>> a {1, 3} 원소삭제 (discard 메소드) >>> a={1,2,3} >>> a.discard(2) >>> a {1, 3} discard 와 remove의 차이는, discard의 경우 제거하려는.. 2020. 11. 3.
[파이썬 기초] set 소개 및 정의 [파이썬 기초] set 소개 및 정의 set은 파이썬에서 제공하는 기본 자료구조중 하나입니다. 아래와 같은 특징을 가집니다. - 중괄호로 정의함 ex) {1,2,3} - 순서가 없음, 인덱싱 불가 - 원소 중복 불가 - 원소로 튜플, 문자열을 가질 수 있음 - 원소로 리스트,딕셔너리를 가질 수 없음 - 서로 다른 자료구조를 동시에 원소로 가질 수 있음 - 값의 제거, 추가는 가능하나 수정은 불가 - 집합 연산가능 set은 중괄호를 이용하여 정의합니다. 아래는 set 정의 예시입니다. >>> a={1,2,3} {1, 2, 3} >>> a={3,2,1} {1, 2, 3} >>> a={1,2,'a'} {1,2,'a'} >>> a={1,2,(1)} {1, 2} >>> a={1,1,2,2} {1, 2} >>> a.. 2020. 11. 3.
[파이썬기초] range 함수로 튜플 정의하기 (등차수열 쉽게 정의하기) [파이썬기초] range 함수로 튜플 정의하기 (등차수열 쉽게 정의하기) range 함수 설명 range 함수는 0을 포함한 자연수의 수열을 반환해주는 함수입니다. 세가지 사용방법이 있습니다. range(값)range(시작값,끝값+1)range(시작값,끝값+1,간격) range를 이용하여 tuple 정의 range 함수 결과에 tuple 함수를 적용하면 됩니다. >>> tuple(range(5))(0, 1, 2, 3, 4) >>> tuple(range(2,4))(2, 3) >>> tuple(range(2,9,2))(2, 4, 6, 8) >>> tuple(range(2,10,2))(2, 4, 6, 8) 2020. 11. 3.
[파이썬기초] range 함수로 리스트 정의하기 (등차수열 쉽게 정의하기) [파이썬기초] range 함수로 리스트 정의하기 (등차수열 쉽게 정의하기) range 함수 설명 range 함수는 0을 포함한 자연수의 수열을 반환해주는 함수입니다. 세가지 사용방법이 있습니다. range(값)range(시작값,끝값+1)range(시작값,끝값+1,간격) range를 이용하여 list 정의 range 함수 결과에 list 함수를 적용하면 됩니다. >>> list(range(5))[0, 1, 2, 3, 4] >>> list(range(2,4))[2, 3] >>> list(range(2,9,2))[2, 4, 6, 8] >>> list(range(2,10,2))[2, 4, 6, 8] 2020. 11. 3.
[파이썬기초]튜플 길이를 구하는 법 [파이썬기초] 튜플 길이를 구하는 법 튜플의 길이를 구할 때는 len 함수를 사용합니다. 튜플을 하나 정의합시다. >>> T=(1,2,2,4,5)>>> T(1,2,2,4,5) len 함수를 사용해봅시다. >>> len(T)5 2020. 11. 3.
[파이썬기초] 튜플 특정 원소의 개수를 구하는 방법 [파이썬기초] 튜플 특정 원소의 개수를 구하는 방법 튜플의 특정 원소의 개수를 구할 때는 count 메소드를 사용합니다. 튜플을 하나 정의합시다. >>> T=(1,2,2,4,5)>>> T(1,2,2,4,5) 4의 개수를 구해봅시다. >>> T.count(4)1 2의 개수를 구해봅시다. >>> T.count(2)2 2020. 11. 3.
[파이썬기초] 튜플 요소의 인덱스를 확인 [파이썬기초] 튜플 요소의 인덱스를 확인 튜플 요소의 위치를 확인하는 방법입니다. index 메소드를 사용합니다. 요소를 입력하면 index를 반환합니다. 튜플을 하나 정의합시다. >>> T=(1,2,2,4,5)>>> T(1, 2, 2, 4, 5) 요소 4의 인덱스를 반환해봅시다. >>> T.index(4)3 요소 2의 인덱스를 반환해봅시다. 가장 처음 나온 2의 인덱스를 반환합니다. >>> T.index(2)1 2020. 11. 2.
[파이썬기초] 튜플 슬라이싱의 결과는 튜플이다 [파이썬기초] 튜플 슬라이싱의 결과는 튜플이다 튜플 인덱싱을 하면 결과로 반환되는 값은 해당 값의 자료형을 갖습니다. 예를들어봅시다. >>> T=(1,'a',{1,2})(1, 'a', {1, 2}) >>> T[0]1 >>> T[1]'a' >>> T[2]{1, 2} 슬라이싱을 하면 하나의 원소에 접근하더라도 튜플로 출력됩니다. >>> T[0:1](1,) 2020. 11. 2.
[파이썬기초] 리스트 길이를 구하는 법 (len) [파이썬기초] 리스트 길이를 구하는 법 리스트의 길이를 구할 때는 len 함수를 사용합니다. 리스트를 하나 정의합시다. >>> L=[1,2,2,4,5] >>> L [1,2,2,4,5] len 함수를 사용해봅시다. >>> len(L) 5 2020. 11. 2.
[파이썬기초] 리스트 특정 원소의 개수를 구하는 방법 (count) 리스트 특정 원소의 개수를 구할 때는 count 메소드를 사용합니다. 리스트를 하나 정의합시다. >>> L=[1,2,2,4,5] >>> L [1,2,2,4,5] 4의 개수를 구해봅시다. >>> L.count(4) 1 2의 개수를 구해봅시다. >>> L.count(2) 2 2020. 11. 2.
[파이썬기초] 리스트 요소의 인덱스를 확인 (index) [파이썬기초] 리스트 요소의 인덱스를 확인 리스트 요소의 위치를 확인하는 방법입니다. index 메소드를 사용합니다. 요소를 입력하면 index를 반환합니다. 리스트를 하나 정의합시다. >>> L=[1,2,2,4,5] >>> L [1,2,2,4,5] 요소 4의 인덱스를 반환해봅시다. >>> L.index(4) 3 요소 2의 인덱스를 반환해봅시다. 가장 처음 나온 2의 인덱스를 반환합니다. >>> L.index(2) 1 2020. 11. 2.
[파이썬 기초] 튜플(tuple) 인덱싱과 슬라이싱 (2) 중첩이 있는 경우 [파이썬 기초] 튜플(tuple) 인덱싱과 슬라이싱 (2) 중첩이 있는 경우 튜플 안에 튜플을 정의한 것을 '중첩'이라고 부르겠습니다. 중첩이 있는 경우의 인덱싱을 알아봅시다. 이중 중첩 튜플이 이중으로 중첩된 튜플을 정의합시다. >>> T=((1,2),3)>>> T((1, 2), 3) 첫번째 원소에 접근해봅시다. >>> T[0](1, 2) 첫번째 원소는 리스트 (1,2) 입니다. 첫번째 원소인 리스트 (1,2)의 첫번째 원소 1에 접근하는 방법은 아래와 같습니다. >>> T[0][0]1 삼중 중첩 리스트가 삼중으로 중첩된 리스트를 정의해봅시다. >>> T2=(((1,2),1),2)>>> T2(((1, 2), 1), 2) 첫번째 원소에 접근해봅시다. >>> T2[0]((1, 2), 1) 첫번째 원소의 첫.. 2020. 11. 2.
[파이썬 기초] 튜플(tuple) 인덱싱과 슬라이싱 (1) 중첩 없는 경우 [파이썬 기초] 튜플(tuple) 인덱싱 (1) 중첩 없는 경우 튜플에서 인덱싱을 하는 방법입니다. 중첩이 없는경우와 있는 경우로 나눠서 살펴볼 것이며, 이번 글은 중첩이 없는 경우입니다. 먼저 튜플을 하나 정의하겠습니다. >>> T=(1,2,3,4,5)>>> T(1, 2, 3, 4, 5) 하나의 원소에 접근 리스트 L의 첫번째 원소에 접근해보겠습니다. 대괄호를 사용합니다. >>> T[0]1 구간을 이용하여 여러 원소에 접근 구간을 이용할 때는 콜론 : 을 사용합니다. 첫번째와 두번째 원소에 접근할 때는 어떻게 해야할까요? 첫번째 원소의 접근방법이 T[0]이었으니까, 두번째 원소까지의 접근은 아마 T[0:1]가 떠오르실 것입니다. 아쉽게도 결과는 아래와 같습니다. 첫번째 원소만 출력되었습니다. T[0]와.. 2020. 10. 30.
[파이썬기초] 리스트 슬라이싱의 결과는 리스트다 [파이썬기초] 리스트 슬라이싱의 결과는 리스트다 리스트 인덱싱을 하면 결과로 반환되는 값은 해당 값의 자료형을 갖습니다. 예를들어봅시다. >>> L=[1,'a',{1,2}] >>> L[0]1 >>> L[1]'a' >>> L[2]{1, 2} 슬라이싱을 하면 하나의 원소에 접근하더라도 리스트로 출력됩니다. >>> L[0:1][1] 2020. 10. 30.
[파이썬 기초] 튜플(Tuple) 소개, 정의 [파이썬 기초] 튜플(Tuple) 소개, 정의 튜플은 파이썬에서 제공하는 기본 자료구조중 하나입니다. 원소 수정 및 삭제가 불가능합니다. 리스트를 이미 알고계신 분들이라면, 변경이 불가능한 리스트라고 이해하시면 됩니다. 아래와 같은 특징을 가집니다. - 소괄호로 정의함 ex) (1,2,3) - 순서가 있음 - 원소로 튜플를 가질 수 있음 - 원소로 다른 자료구조(튜플,문자열,딕셔너리)를 가질 수 있음 - 서로 다른 자료구조를 동시에 원소로 가질 수 있음 - 수정이 불가능함 정의 방법은 괄호 없이 숫자를 콤마로 구분하여 입력하거나, 소괄호를 이용합니다. 아래는 튜플 정의 예시입니다. >>> T1=(1,2,3) >>> T1 (1,2,3) >>> T2=(1,2,'a') >>> T2 (1, 2, 'a') >>>.. 2020. 10. 30.
반응형