def solution(s):
return ''.join(sorted(list(s),reverse=True))
리스트로 안바꿔도 문자열도 sorted 쓸 수 있당 ㅎㅅㅎ
- 리스트 함수
del 리스트 슬라이스/리스트 요소
리스트.insert(인덱스, 값)- 객체: 파이썬에서 사용되는 모든 자료형
- 런타임: 컴퓨터 언어 안에 쓰인 프로그램을 관리하기 위해, 특정한 컴파일러나 가상 머신이 사용하는 기본 코드의 라이브러리나 프로그램/ 프로그램이 실행되고 있는 동안의 동작
https://dev-jacob.tistory.com/entry/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EB%A9%B4%EC%A0%91-%EC%A7%88%EB%AC%B8-%EB%A6%AC%EC%8A%A4%ED%8A%B8-1
https://www.educative.io/answers/tuples-vs-list-in-python
condition ? a : b
형태로 사용한다.연산자에 따라 항을 분리해서 3개가 나오면 3항 연산자(3operands)
(참인 경우의 값) if 조건 else (거짓인 경우의 값) → 리스트 축약식에서 사용하는.. else이하가 필수 → 참인 경우의 값이 false라도 상관없음
== 조건 and (참인 경우의 값) or (거짓인 경우의 값)
True and x==x
False or x==x 이므로
→ 참인 경우의 값이 false면 거짓인 경우의 값이 리턴됨 → old style쓰지말고 ternary operator를 쓰는 게 좋다
조건식은 파이썬 연산자 중 가장 낮은 우선순위를 가진다.
참/거짓의 조건에 따라 연산한다.
한줄로 조건을 판별할 수 있다.
리턴 값을 변수에 넣어줄 수 있다.
Python 2.5 부터 도입되었다.
statements를 사용할 수 없다.(변수값 할당, pass 등)
(b,a)튜플의 인덱스를 프린트
# Python program to demonstrate ternary operator
a, b = 10, 20
# Use tuple for selecting an item
# (if_test_false,if_test_true)[test]
# if [a<b] is true it return 1, so element with 1 index will print
# else if [a<b] is false it return 0, so element with 0 index will print
print( (b, a) [a < b] )
print([a < b])
a<b 조건식이 참이라면 (20,10)[1]==10
a<b 조건식이 거짓이라면 (20,10)[0]==20
*both elements of the tuple are evaluated since the program first creates the tuple and only then checks the index.
딕셔너리의 인덱스는 키값
# Use Dictionary for selecting an item
# if [a < b] is true then value of True key will print
# else if [a<b] is false then value of False key will print
print({True: a, False: b} [a < b])
a<b 조건식이 참이라면 {True: 10, False: 20} [True]==10
a<b 조건식이 거짓이라면 {True: 10, False: 20} [False]==20
람다식을 이용해서
# lambda is more efficient than above two methods
# because in lambda we are assure that
# only one expression will be evaluated unlike in
# tuple and Dictionary
print((lambda: b, lambda: a)[a < b]())
람다는 함수니까( )
를 붙여야 실행이 됨
<function <lambda> at 0x000002C0A018AEF0>
a<b가 참이니까 (lambda:a)()
more efficient than two above because only one expression is evaluated ❓람다도 지금 튜플에 들어있는거 아닌가 그럼 튜플.. 먼저 만드는 건.. 마찬가지.. 아님...?➡️튜플은 먼저 생성되는 게 맞고 인덱스로 선택된 lamda:a 만 계산된다는 거 같음 이게 lazy evaluation때문인건가?????????
람다함수
익명함수: 함수의 이름을 지정하지 않음
- 정의와 동시에 사용할 수 있음
(lambda x : x+1)(3)
- 변수에 담을 수 있음(객체이기 때문)
func = lambda x : x + 1
사용:func(X에 들어갈 값)
- 코드의 간결함 메모리의 절약: 재사용하지 않는 함수라면 람다로 정의해서 바로 쓰는 게 좋다
→ 객체가 만들어지는 순간 메모리에 올라가서 자원의 소모가 생기기때문*함수도 클래스로 생성된 객체 인스턴스
파이썬의 모든 것은 객췌
https://wikidocs.net/22804
target = ['cat', 'tiger', 'dog', 'snake']
print(sorted(target, key=lambda x : len(x.strip())))
key=
부분이 빠지면 람다식을 하나의 argument로 봐서 2개의 인자를 받았다고 오류남공백->알파벳
순으로 정렬됨
- or은 (한개만 트루면 되니까) 뒤에껄 볼 필요가 없으니까 먼저 온 true/sth 값이 출력되고
- and는 뒤에껄 봐야 결과가 나오니까 앞이 트루면 뒤에 값이 출력됨 (둘다 t여야 true 하나라도 f면 false)
https://www.geeksforgeeks.org/ternary-operator-in-python/
x,y='12'
print(y,x)
iterable하면 가능하다
갯수는 맞춰줘야함
⭐⭐⭐
짝수개면 되는 게 아니라 딱 두개여야함