[파이썬] for문에 변수 여러개 사용하기 (i,j,k)
아래 예시를 통해 이해해봅시다. #리스트 생성 li=[[1,10,100],[2,20,200],[3,30,300]] #for문 for i,j,k in li : print('i:{} j:{} k:{}'.format(i,j,k)) 결과는 아래와 같습니다. i:1 j:10 k:100 i:2 j:20 k:200 i:3 j:30 k:300
2023. 9. 7.
[파이썬] 함수의 가변인자 입력값을 튜플로 넣는 법
아래와 같이 가변인자를 입력받는 함수가 있다고 합시다. def vars1(*lst) : print(lst) 인자는 아래와 같이 입력하면 됩니다. vars1(1,2,3,4,5) 만약 변수로 정의된 튜플의 각 원소를 가변인자로 넣고 싶다면 아래와 같이 하면 됩니다. tu=(1,2,3,4,5) vars(tu) >>> vars1(*tu) (1, 2, 3, 4, 5) 만약 *을 붙이지 않으면 tu 전체가 하나의 인자로 입력됩니다. >>> vars1(tu) ((1, 2, 3, 4, 5),)
2023. 5. 26.
[파이썬] 함수에 여러 값 원하는 만큼 입력받기 (가변인자)
1. 여러 값을 입력받고 튜플로 저장하기 변수 이름 앞에 *을 붙여줍니다. def vars1(*lst) : print(lst) 함수를 사용해봅시다. 콤마로 구분하여 여러 값을 입력하면 됩니다. >>> vars1(1,2,3,4,5) (1, 2, 3, 4, 5) 값이 튜플 형태로 저장된 것을 알 수 있습니다. 2. 여러 값을 입력받고 딕셔너리로 저장하기 변수 이름 앞에 **를 붙여줍니다. def vars2(**dic) : print(dic) 함수를 사용해봅시다. key:value 쌍을 key=value 형태로 입력하면 됩니다. 콤마로 구분하여 입력합니다. >>> vars2(age=13,height=172,weight=73) {'age': 13, 'height': 172, 'weight': 73}
2023. 5. 26.
[파이썬 클래스] 원본 변수가 바뀌는 경우 해결 (copy 함수를 사용해야 하는 이유)
아래 코드를 봅시다. 어떻게 동작하는지 먼저 이해해봅시다. class add : def __init__(self,lst): self.lst=lst.append(5) a=[1,2,3,4,5] mcls=add(a) 위 코드는는 a를 [1,2,3,4,5,5] 으로 바꾸고 mcls.list 에는 아무것도 저장되지 않습니다. 결과는 아래와 같습니다 . >>> a [1, 2, 3, 4, 5, 5] >>> mcls.list list.append(5) 의 결과가 none 이기 때문입니다. 클래스 안의 def 에서 변수를 입력받을 때 참조해서 가져오기 때문에 append 를 적용하면 원본인 a가 바뀝니다. 변수를 참조가 아닌 복사해서 가져오는 방법은 아래와 같습니다. copy 함수를 사용하면 됩니다. class add ..
2023. 5. 25.
[파이썬] 함수는 입력되는 변수를 참조로 가져온다 (copy함수의 사용)
아래 코드를 봅시다. def add(lst) : lst.append(6) a=[1,2,3,4,5] add(a) 이 코드에서 a를 출력하면 무엇이라고 나올까요? 아래와 같은 결과가 나옵니다. >>> a [1, 2, 3, 4, 5, 6] 함수에 변수가 입력되면 변수를 참조해서 가져오기 때문에 원래 변수가 변하게 됩니다. 변수를 참조하지 않고 가져오려면 아래와 같이 copy 함수를 사용해야 합니다. def add(lst): new_lst = lst.copy() # 또는 new_lst = list(lst) new_lst.append(5) return new_lst a = [1, 2, 3, 4, 5] result = add(a) 결과는 아래와 같습니다. >>> a [1, 2, 3, 4, 5]
2023. 5. 25.
[파이썬 클래스] 원본 변수가 바뀌는 경우 해결 (copy 함수를 사용해야 하는 이유)
아래 코드를 봅시다. 어떻게 동작하는지 먼저 이해해봅시다. class add : def __init__(self,lst): self.lst=lst.append(5) a=[1,2,3,4,5] mcls=add(a) 위 코드는는 a를 [1,2,3,4,5,5] 으로 바꾸고 mcls.list 에는 아무것도 저장되지 않습니다. 결과는 아래와 같습니다 . >>> a [1, 2, 3, 4, 5, 5] >>> mcls.list list.append(5) 의 결과가 none 이기 때문입니다. 클래스 안의 def 에서 변수를 입력받을 때 참조해서 가져오기 때문에 append 를 적용하면 원본인 a가 바뀝니다. 변수를 참조가 아닌 복사해서 가져오는 방법은 아래와 같습니다. copy 함수를 사용하면 됩니다. class add ..
2023. 5. 25.
[파이썬 재밌는 예제] 트럼프 카트 만들고 랜덤하게 뽑기
문제) 트럼프카드는 무늬(suit)와 순위의 조합으로 만들어진 카드입니다. 무늬는 스페이드, 다이아몬드, 하트, 클로버의 네가지가 있습니다. 순위는 Ace,2,3,4,5,6,7,8,9,10,J,Q,K 입니다. 4개의 무늬와 13개 순위의 조합이므로 총 52개의 카드가 만들어집니다. 아래와 같이 무늬튜플과 순위튜플이 주어져 있습니다. SUIT = ('Spades', 'Hearts', 'Clubs', 'Diamonds') RANK = ('Ace', '2', '3', '4', '5', '6', '7', '8', '9','10', 'Jack', 'Queen', 'King') 이 튜플을 이용하여 트럼프 카드를 만들어보세요. 결과는 아래와 같이 딕셔너리를 원소로 갖는 리스트 형태여야 합니다. [{'rank': 'A..
2023. 5. 4.
[파이썬] 리스트의 모든 원소 반올림 하는 방법
파이썬의 내장함수인 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.