[221124] 추가 공부

Suhyeon Lee·2024년 11월 22일
0

자기주도학습

목록 보기
52/83

Python

sort() vs. sorted()

sort

  • 리스트명.sort() 형식
    • list_name.sort(key=<function>, reverse=<bool>
  • 리스트형의 메소드
  • 리스트 원본을 정렬된 상태로 변경(리스트 원본값을 직접 수정)
a1 = [6, 3, 9]
print('a1:', a1)
a2 = a1.sort() # 원본을 정렬하고 수정합니다(in-place)
print('-----정렬 후-----')
print('a1:', a1)
print('a2:', a2)
[실행 결괴]
a1: [6, 3, 9]
-----정렬 후-----
a1: [3, 6, 9]
a2: None

sort( ) 함수의 리턴값이 None 이므로 주의합니다.
정렬된 값은 리턴되지 않습니다.
원본 리스트 값이 정렬된 값으로 수정되었습니다.

sorted

  • sorted(리스트명) 형식
    • sorted(iterable, key=<function>, reverse=<bool>)
  • 내장 함수
  • 원본을 변형시키지 않고 정렬된 결과를 리턴(리스트 원본 값은 그대로이고 정렬 값을 반환)
  • 리스트 뿐만 아니라 iterable 자료형에 모두 사용 가능
b1 = [6, 3, 9]
print('b1:', b1)
b2 = sorted(b1) # 원본은 유지하고 정렬한 새 리스트를 만듭니다
print('-----정렬 후-----')
print('b1:', b1)
print('b2:', b2)
[실행 결괴]
b1: [6, 3, 9]
-----정렬 후-----
b1: [6, 3, 9]
b2: [3, 6, 9]

원본 리스트 b1 값은 유지되고 정렬된 새 리스트는 b2에 저장되었습니다.

매개변수: reverse, key

  • reverse=
    • 내림차순(True) 또는 오름차순(False) 변경 가능
  • key= 값을 기준으로 정렬 가능
#문자열의 개수를 기준으로 정렬
list_str = ['hi', 'this', 'hello', 'python']
print(sorted(list_str, key=lambda x: len(x)))


#특정 문자(x[n])을 기준으로 정렬
print(sorted(list_str, key=lambda x: x[n]))


#2차원 리스트 중 한 요소 기준으로 정렬
list_num = [[1, '가'], [3, '다'], [4, '라'], [2, '나']]
print(sorted(list_num, key=lambda x: x[0]

파이썬 상황별 따옴표 사용법

  • 파이썬에서 따옴표를 사용하는 방법은 크게 세가지
    • 홑따옴표(')
    • 쌍따옴표(")
    • 셋잇단따옴표(""")
  • 다른 인터프리터 언어인 php와 달리 세 개의 따옴표 모두 용도적인 차이점은 없음
    • nevertheless, 가독성을 위한 규칙은 있음!
      • 각각의 조직이나 개인별 차이가 있음
    • 일반적으로 이렇게 쓴다는 것이니 편한 데로 쓰면 됨

※ 관습적·문법적으로 의미를 가지는 단위의 경우 ' ' 를 사용하고, 크게 의미를 가지지 않는 문자열은 " "를 이용한다.

if compiler == 'python':
...
else:
	print "Python is Snake"
  • 홑따옴표(')
    • 보통 단어나 식별자를 지칭할 때
      (예) dict에서의 key값, 특정 값들을 조합해서 만드는 새로운 string
    • 기호나 식별자 define이나 list 정의할 때
  • 쌍따옴표(")
    • 보통 문장에 씀
    • 진짜 일반적인 문자열에 쓰임
    • 추가로 정규식을 정의할 때도 씀
import re 

data = """
park 800905-1049118
kim  700905-1059119
"""

pat = re.compile("(\d{6})[-]\d{7}")
print(pat.sub("\g<1>-*******", data))
  • 셋잇단따옴표(""")
    • 보통 docstring, 그러니까 특정 파일이나 함수에 대한 안내사항을 쓸 때 사용
    • 파이썬은 다른 언어와 달리 여러 줄의 주석을 한번에 작성할 수 있는 기능(보통 /**/로 감싸는 형태로 작동)이 없으므로 셋잇단따옴표로 주석 내용을 감싼다.
    • 물론 변수에 넣었을 때도 제대로 작동함

※ 위 내용들을 토대로 코드를 간단하게 작성해보면 아래와 같은 모양이 된다.

"""
This function returns dict
"""


def func():
    string_dict = {
        'first': "hello world"
    }
    return string_dict

cf. C언어 홑따옴표와 쌍따옴표(작은 따옴표, 큰 따옴표)

  • 큰 따옴표(쌍 따옴표)는 "여러", 작은 따옴표(홑 따옴표)는 '홑'
// 에러가 발생하는 경우
char str[] = "HELLO";
str[0] = "B";

// 올바른 사용
char str[] = "HELLO";
str[0] = 'B';

// 에러가 발생하는 경우
printf("%c","A"); printf("%s", 'A');

// 올바른 사용
printf("%c", 'A'); printf("%s", "A");

In C and in C++ single quotes identify a single character, while double quotes create a string literal. 'a' is a single a character literal, while "a" is a string literal containing an 'a' and a null terminator (that is a 2 char array).

우선 한 개는 홑따옴표, 여러 개는 쌍따옴표가 맞다. 그러나 한 개를 표현할때도 쌍따옴표를 쓰면 뒤에 널문자가 붙는다는 것!

따라서 널문자가 나타날때까지 읽는 %s에서는 한 문자를 쓰더라도 쌍따옴표(double quotations)를 사용해야 하는 것이다.

profile
2 B R 0 2 B

0개의 댓글

관련 채용 정보