본문 바로가기

Algorithm/Python

(29)
[Python] set 함수 (중복제거) #list에 중복된 값이 있으면 true, 없으면 false 반환 def has_duplicates(1st): return len(1st) != len(set(1st)) x = [1,2,3,4] y = [3,3,3,3] has_duplicates(x) # false has_duplicates(y) # true 코딩테스트 문제에서 중복된 요소가 있는지 확인할 때 요긴하게 사용할 수 있다.
[Python] 순열과 조합 (permutations & combinations) 순열이란 서로 다른 n개의 원소에서 r개를 중복없이 순서를 고려하여 선택 혹은 나열하는 것을 의미한다.파이썬에서는 itertools를 이용하면 순열 내장함수인 permutations를 사용할 수 있다. 하나의 리스트에서 r개의 원소를 선택하여 나열하는 방법과, 모든 원소를 순서를 고려하여 나열하는 방법 2가지가 있다. 하나의 리스트에서 r개의 원소를 선택하여 나열하는 방법len() 함수를 사용하면 개수까지 구할 수 있다. 다음의 코드는 N개의 원소 중 2개의 원소를 선택하는 경우다. 확인해보자.import itertoolsA = list(map(int, input().split()))nPr = list(itertools.permutations(A, 2))print(nPr)print(len(nPr)) 1 ..
[Python] 대소문자 변환 함수 4가지 1. upper() 함수 upper() 함수는 영문자의 모든 문자들을 대문자로 바꾸는 함수이다. data = "Hello World" print(data) print(data.upper()) Hello World HELLO WORLD 2. lower() 함수 lower() 함수는 영문자의 모든 문자들을 소문자로 바꾸는 함수이다. data = "Hello World" print(data) print(data.lower()) Hello World hello world 3. capitalize() 함수 capitalize() 함수는 영문자의 문자열 첫 글자는 대문자로 변환하고, 나머지 문자열의 글자는 모두 소문자로 변환하는 함수이다. data = "HEllo worlD" print(data) print(dat..
[Python] join 함수 join 함수의 모양은 다음과 같다. ".join(리스트) '구분자'.join(리스트) 1. ".join(리스트) ['a', 'b', 'c'] 이런 리스트가 있다고 하자. 이를 "abc"의 문자열로 합쳐서 반환해주고 싶다면 ".join(리스트)를 이용하면 된다. 2.'구분자'.join(리스트) 마찬가지로 ['a', 'b', 'c'] 이런 리스트가 있다고 하자. 이 때, "a_b_c"와 같은 형태로 문자열을 반환하고 싶다면 '_'.join(['a', 'b', 'c']) 이렇게 써주면 된다.
[Python] 튜플 정렬 파이썬에서는 튜플을 원소로 하는 리스트가 있을 때, 그 리스트를 정렬하면 기본적으로 각 튜플을 구성하는 원소의 순서에 맞게 정렬된다는 특징이 있다. 예를 들어 튜플이 3개의 원소로 구성된다면 모든 원소가 첫 번째 원소의 순서에 맞게 정렬되고, 첫번째 원소의 값이 같은 경우 두 번째 원소의 순서에 맞게 정렬되고, 거기에 두 번째 원소의 값까지 같은 경우 세 번째 원소의 순서에 맞게 정렬된다. 아래의 소스코드를 보자. 소스코드 a = [(5, 1, 5), (3, 5, 5), (3, 1, 9), (3, 1, 1)] a.sort() print(a) 결과 [(3, 1, 1), (3, 1, 9), (3, 5, 5), (5, 1, 5)] 또한 리스트의 원소를 정렬할 때는 sort() 함수의 key 속성에 값을 대입하..
[Python] 람다(Lambda) 표현식 람다 표현식은 익명 함수를 만들때 사용한다. 함수를 간편하게 작성할 수 있어서 다른 함수의 인수로 넣을 때 주로 사용한다. 람다 표현식은 다음과 같이 사용한다. lambda 매개변수 : 표현식 바로 예시를 살펴보자. 1. def() 우리는 두 수를 더하는 함수를 만들때 다음과 같이 작성한다. >>> def hap(a, b): ... return a + b ... >>> hap(10, 20) 30 이를 람다 표현식으로 쓰면 다음과 같이 간결하게 쓸 수 있다. >>> (lambda a,b: a + b)(10, 20) 30 2. map() 람다식은 map()함수와도 응용하여 사용할 수 있다. >>> map(lambda a: a ** 2, range(5)) [0, 1, 4, 9, 16] >>> list(map(..
[Python] 알파벳 순서대로 정렬하기 1. sorted() 함수를 이용하여 정렬하기Python의 sorted()함수는 요소 값으로 반복 가능한 객체를 정렬하는 데 사용된다. 이미 알고 있듯이 파이썬 문자열은 반복 가능한 객체다. 따라서 sorted() 함수를 사용하여 문자열을 알파벳순으로 정렬할 수 있다. 다음의 예시를 보자. data = 'chaeso'print(sorted(data)) 결과는 다음과 같다. ['a', 'c', 'e', 'h', 'o', 's'] 하지만 문제가 있다. 위의 방법은 문자를 오직 리스트의 형태로 문자열을 출력하는 것만 가능하다. 우리가 원하는 것이 data라는 문자열 변수 자체를 정렬하고 싶은 것이라면 아래의 방법을 사용하도록 하자. 2. str.join() 함수를 이용하여 정렬하기str.join() 함수는 i..
[Python] ImportError: No module named '_curses' 에러 이 에러는 curses 모듈이 윈도우를 지원하지 않아서 생기는 에러이다. 다음과 같은 명령어를 입력해보자. pip install windows-curses