코테 준비(정렬)

1503 단어 코테코테

정렬에서 가장 유용한 식은 list에서 sort 혹은 sorted에서 key를 통해서 정렬하는 것이 가장 유용하다고 생각한다.

something = [어떤한 값들]

something.sort(key = lambda x : (조건1,조건2,조건3...))
##key를 기준으로 정렬하여라 => 조건을 기준으로 정렬하여라

ex)길이를 기준으로 정렬하여라
something.sort(key = lambda x: len(x))
ex)길이를 기준으로 정렬하되 길이가 같으면 사전 순으로 정렬하여라
something.sort(key = lambda x: (len(x), x))
ex)길이를 기준으로 정렬하되 길이가 같으면 사전 역순으로 정렬하여라
something.sort(key = lambda x: (len(x), -x))

ex) 2번째 인덱스를 기준으로 사전순으로 정렬하라 만약 같다면 길이순으로 정렬해라 
그래로 중복되는게 있다면 1번째 인덱스를 기준으로 정렬해라
something=["ab","abc","abcd","cbas","acd"]
print(something)
something.sort(key = lambda x: (x[1],len(x),x[0]))
print(something)
결과__
['ab', 'abc', 'abcd', 'cbas', 'acd']
['ab', 'abc', 'abcd', 'cbas', 'acd']

list에서 중복을 제거하고 싶다면 크게 두가지 방법이 있다.

1번째 set을 활용한 제거

set함수의 특징은 1 : 중복되는 원소는 없다. 2: 순서가 없다 이렇게 두개가 있는데 이중 첫번째 성질인 중복되는 원소가 없다를 활용한 제거 방법이다.

my_list = [1,2,3,4,5,5]
my_list = list(set(my_list)) ## set함수를 사용하면 반환값은 리스트가 아니라 자료형이 반환되므로 
                             ## 다시 리스트 형으로 형변환을 해줘야한다.

for문을 사용한 제거 방법

전체를 순회하면서 일일이 확인해주는 방법이다.

my_list = [1,2,3,4,5,5]
new_list = []
for index in my_list:
	if index2 not in my_list:
    	new_list.append(index2)

참조 : https://dailyheumsi.tistory.com/67

좋은 웹페이지 즐겨찾기