[파이썬] 리스트의 모든 원소 반올림 하는 방법
파이썬의 내장함수인 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.
[파이썬] 리스트 할당과 복사 (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.
[파이썬 기초] 리스트 생성 시 값만 참조하는 방법
[파이썬 기초] 리스트 생성 시 값만 참조하는 방법 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.
[파이썬 기초] 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.
[파이썬 기초] 튜플(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.
[파이썬 기초] 튜플(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.