본문 바로가기

Python

[Python] 나만 몰랐던 python 문법

반응형

list 깊은 복사 [:]

arr = arr1 을 하면 arr1과 arr 가 똑같이 변경 된다.

arr = arr1[:] 을 하면 arr와 arr1을 다르게 변경할 수 있다.

python 슬라이싱(자르기) [start:end:step]

리스트 중 내가 원하는 범위의 항목만 빼기

list = [1,2,3,4,5,6,7]
# 뒤에서 5번째부터
print(list[-5:])
[3,4,5,6,7]
# 3번째까지
print(list[:3])
[1,2,3]

리스트 역순으로 만들기

list = [1,2,3,4,5]
print(list[::-1])
[5,4,3,2,1]

enumerate 맨날 까먹는거 

list = [1,2,3,5,7,9]
for a, b in enumerate(list):
    print(a, b)
0 1
1 2
2 3
3 5
4 7
5 9

글자 * 숫자

a = "테스트"
b = 5
result = a*5
print(result)

# 결과값
테스트테스트테스트테스트테스트

배열에서도 되는지 확인해봤는데

# 배열 테스트
print( [[]*n]*n)
[[],[],[],[]]

생성은 되나 이렇게 할 경우 같은 주소를 참조해 하나를 바꾸면 다 바꾼다고 하니

아래 코드처럼 선언해 주어야한다고 한다.

# example1
[[0 for _ in range(n)] for _ in range(n)]

#example2
[[0]*n for _ in range(n)]

영문 대소문자 반대로 변환

# 대소문자 반전
str = "TeSt"
print(str.swapcase())
# 결과값
tEsT

# 대문자 만들기
print(str.upper())
# 결과값
TEST

# 소문자 만들기
print(str.lower())

# 결과값
test

# 첫대문자 나머지 소문자 만들기
print(str.capitalize())

#결과값
Test

# 각 문자열 첫 단어 대문자 나머지
str = "tesT ttsTsT"
print(str.title())

#결과값
Test Ttstst

제곱근 표현 2**2

print(2**2)
4
print(2**3)
8

for문으로 리스트 만들기 [i for i in range(10)]

# 기초
a = [i for i in range(10)]
print(a)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

# 조건에 맞는것만 빼서 새로운 리스트 만들기
arr = [-1,-2,0,1,2]
list = [i for i in arr if i > 0]
print(list)
[1,2]

for문으로 {} 오브젝트 만들기 {x: dice.count(x) for x in dice}

{x: dice.count(x) for x in dice}

리스트 일괄 계산하기 sum([1,2,3,4]) prod([1,2,3,4])

num_list = 	[3, 4, 5, 2, 1]

def solution(num_list):
    s=sum(num_list)**2
	print(s)

#결과값
225


num_list = [3, 4, 5, 2, 5, 4, 6, 7, 3, 7, 2, 2, 1]
# 더하기
print(sum(num_list))
51

num_list = [2, 3, 4, 5]
# 곱하기
print(prod(num_list))
120

글자를 산식으로 바꾸기 ("1<1"  을 1<1 로)

eval (python 내장함수)

https://docs.python.org/ko/3/library/functions.html#eval

동적으로 문자열 표현식을 평가하여 실행 (Evaluate expressions dynamically)

syntax

eval(expression, globals=None, locals=None)

example

# 기초
x = 1
eval('x+1')
2

# 응용
n = 1 # number
m = 1 # number
ineq = "<" # < or >
eq = "!" # ! or = # !는 =이 없다는 뜻이다.

# 1 "<!" 1
# 1 < 1
print(eval(str(n)+ineq+eq.replace('!', '')+str(m)))

False

zip (리스트 묶기)

name = ['merona', 'gugucon']
price = [500, 1000]

z = zip(name, price)
print(list(z))
[('merona', 500), ('gugucon', 1000)]

https://wikidocs.net/92539

 

07) zip과 딕셔너리

[TOC] ## 두 개의 리스트를 묶기 zip은 두 개의 리스트를 서로 묶어줄 때 사용합니다. ``` name = ['merona', 'gugucon'] price = …

wikidocs.net

동시에 리스트 항목 위치 변경하기 arr[2],arr[3]=arr[2],arr[3]

arr = [1, 2, 3, 4, 5]
arr[2],arr[3]=arr[2],arr[3]
print(arr)

[1, 2, 4, 3, 5]

True False  1 0 으로 바꾸기 int(True)

int(True)
1
int(False)
0

글자 찾기 str1 in str2

str1 = "abbcbc"
str2 = "bbc"

print(str1 in str2)
True

Print(str1.find(str2))
1

range 활용

list(range(10,0,-1))
[10,9,8,7,6,5,4,3,2,1]
반응형