본문 바로가기

Etc./Python35

[Python] itertools 곱집합을 해주려면 예를 들어 'ABCD' 'xy' 두 문자열을 Ax Ay Bx By Cx Cy 이렇게 묶어주려면 for문을 2개는 돌려야 할거다 그런데 itertools의 product를 이용하면 매우 간단하게 구현 가능 import itertools iterable1 = 'ABCD' iterable2 = 'xy' iterable3 = '1234' print(list(itertools.product(iterable1, iterable2, iterable3))) 이렇게 구현 가능! 이려면 [('A', 'x', '1'), ('A', 'x', '2'), ('A', 'x', '3'), ('A', 'x', '4'), ('A', 'y', '1'), ('A', 'y', '2'), ('A', 'y', '3'), ('A.. 2021. 10. 10.
[Python] join sequence(list, tuple등) 멤버를 하나로 이어붙이는 일을 해주는 join str.join(iterable)로 사용할 수 있다. my_list = ['1', '100', '33'] answer = '' for value in my_list: answer += value 이렇게 for문으로 복잡하게 돌려야하는 문자열 이어붙이기를 my_list = ['1', '100', '33'] answer = ''.join(my_list) 이렇게 간단하게 해줄 수 있다. join 함수는 이렇게 정리할 수 있겠다. iterable의 멤버들을 str으로 이어붙여주는 일을 해주는 듯 시간 표시하던 방법 문제에서도 있었던것 같은데 이거였구나 숫자도 가능! 연장선 상에서 sequence type에 *연산이 가능한데 .. 2021. 10. 10.
[Python] zip zip(*iterables)는 각 iterables 의 요소들을 모으는 이터레이터를 만듭니다. 튜플의 이터레이터를 돌려주는데, i 번째 튜플은 각 인자로 전달된 시퀀스나 이터러블의 i 번째 요소를 포함합니다. 뭔 말인지 모르겠다. 간단히 내 말로 정리해보자면 zip에 인자로 넣어준 iterable한 변수들(tuple, list 등)을 쌍으로 맞춰서 tuple로 변환해주는 것 #보통은 다음과 같이 2중 for 문을 이용해 리스트의 row와 column을 뒤집습니다. mylist = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] new_list = [[], [], []] for i in range(len(mylist)): for j in range(len(mylist[i])): new_list.. 2021. 10. 10.
[Python] 리스트 내포(List comprehension) https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=qbxlvnf11&logNo=221434003885 파이썬 리스트 안에서 for 문 사용하기 파이썬은 스크립트 언어답게 간결함을 지향합니다. 그래서 반복문 중 하나인 for 문 역시 보다 심플한 형식... blog.naver.com 여기 좋고 간단히 정리하면 리스트 명 = [표현식 for 변수 in 반복 가능한 대상(iterable) if 조건문] 이렇게 실행을 해주면 for문과 if문을 만족하는 표현식이 list의 item으로 저장되는 것! +21.10.25 list comprehension을 이용한 2차원 리스트 초기화 # M x N 의 2차원 리스트 초기화 array = [[0].. 2021. 10. 10.
[Python] sort() vs sorted() 일단 내가 이해한 바로는 sort()는 list에 실행을 해줘서 list 자체의 값을 바꿔버린다. list.sort() 를 해주면 그 list 자체가 정렬되어버리고 sorted()는 새로 정렬된 list를 만들어줄 수 있다. new_list=sorted(list) 이런 식으로 2021. 10. 10.
[Python] shallow/deep copy https://blueshw.github.io/2016/01/20/shallow-copy-deep-copy/ 얕은 복사(shallow copy) vs 깊은 복사(deep copy) 이번에는 객체의 복사에 대해서 알아보려고 합니다. 객체의 복사는 크게 얕은 복사(shallow copy)와 깊은 복사(deep copy)로 나뉩니다. 얼핏 들으면 단어 자체의 의미가 모호하게 느껴질 수도 있습니다 blueshw.github.io 생각 안나거나 헷갈리면 읽어보기 2021. 10. 10.
[Python] string 모듈 import string string.ascii_lowercase # 소문자 abcdefghijklmnopqrstuvwxyz string.ascii_uppercase # 대문자 ABCDEFGHIJKLMNOPQRSTUVWXYZ string.ascii_letters # 대소문자 모두 abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ string.digits # 숫자 0123456789 이토록 간단한 파이썬의 세계.. 2021. 10. 9.
[Python] 문자열 정렬 ljust, center, rjust 왼쪽, 가운데, 오른쪽 정렬 s = '가나다라' n = 7 s.ljust(n) # 좌측 정렬 s.center(n) # 가운데 정렬 s.rjust(n) # 우측 정렬 만약 print로 출력한다면 결과는 가나다라 가나다라 가나다라 이렇게 나온다 2021. 10. 9.
[Python] int 함수 입력된 정수를 몇진수로 바꾸는 함수가 for문을 이용하는것이 아니라 아주 간단한 int 함수로 가능했다. def num_base(num, base): num_str=str(num) num_list=[] for _ in range(len(num_str)): num_list.append(num%10) num=num//10 val = 0 for i, n in enumerate(num_list): val+=n*(base**i) return val num, base = map(int, input().strip().split(' ')) print(num_base(num, base)) 내가 짠 처참한 코드... 보통의 for문 돌리는 거랑 비교해봐도 최악이다. num, base = map(int, input().st.. 2021. 10. 9.
[Python] 몫과 나머지 - divmod, unpacking https://programmers.co.kr/learn/courses/4008/lessons/12732 파이썬을 파이썬답게 - 몫과 나머지 - divmod 본 강의는 파이썬 문법을 이미 알고 있는 분들을 대상으로 만들어졌습니다. ##### 이런 분들께 추천합니다 * 파이썬 문법을 알고 계시는 분 * 알고리즘 문제를 조금 더 쉽게 풀고 싶은 분 * Python 코 programmers.co.kr 쏠쏠한 팁이다 a = 7 b = 5 print(a//b, a%b) print(*divmod(a,b))#divmod와 unpacking을 이용 둘은 같은 출력을 반환 무조건 divmod를 사용하는 게 좋은 방법은 아닙니다. 가독성이나, 팀의 코드 스타일에 따라서, a//b, a%b와 같이 쓸 때가 더 좋을 수도 있.. 2021. 10. 9.