range(start, end, step)
리스트에서 특정 값의 인덱스 찾기
a = [1, 2, 3, 4]
print(a.index(2))
# 1
numbers = [1, 2, 3, 4]
length = len(numbers)
for i in range(length):
print(numbers[length - i])
# 4
# 3
# 2
# 1
numbers = [1, 2, 3, 4]
length = len(numbers)
for i in range(length):
print(numbers[-i])
# 1
# 4
# 3
# 2
인덱스와 값을 바로 가져올 수 있다 (단, iterable 해야함)
string = hello
for i, v in enumerate(string):
print(i, v)
# 0 h
# 1 e
# 2 l
# 3 l
# 4 o
파이썬에서는 C처럼 문자에 숫자를 더해 새로운 문자를 구할 수 없다
즉, 아래 식이 성립하지 않는다
'A' + 32 = 'a'
숫자는 숫자끼리 연산해야하기 때문에 ord() 함수로 아스키 숫자로 바꾼 후
그 숫자를 chr() 함수로 문자화해줘야한다
ord('A')
#65
chr(ord('A') + 32)
#a
CODE라는 사전에서 키가 i 인 것의 값을 가져온다
i는 s의 항목이다
CODE.get(i) for i in s
CODE = {'a': '.-', 'b': '-...', 'c': '-.-.',
'd': '-..', 'e': '.', 'f': '..-.',
'g': '--.', 'h': '....', 'i': '..',
'j': '.---', 'k': '-.-', 'l': '.-..',
'm': '--', 'n': '-.', 'o': '---',
'p': '.--.', 'q': '--.-', 'r': '.-.',
's': '...', 't': '-', 'u': '..-',
'v': '...-', 'w': '.--', 'x': '-..-',
'y': '-.--', 'z': '--..',
}
s = "hello"
print(''.join(CODE.get(i) for i in s))
#......-...-..---
두 iterable을 하나의 튜플로 합치기
*
를 사용하면 튜플로 분리 가능
coordinate = ['x', 'y', 'z']
value = [3, 4, 5]
result = zip(coordinate, value)
result_list = list(result)
print(result_list)
# [('x', 3), ('y', 4), ('z', 5)]
c, v = zip(*result_list)
print('c =', c)
print('v =', v)
c = ('x', 'y', 'z')
v = (3, 4, 5)
배열을 똑같이 복사하되 반대 순서로
arr = [1, 2, 3, 4]
print(arr[::-1])
#[4, 3, 2, 1]
arr = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
arr[::-1]
# [
# [7, 8, 9],
# [4, 5, 6],
# [1, 2, 3]
# ]
tup = zip(*arr[::-1])
#(7, 4, 1)
#(8, 5, 2)
#(9, 6, 3)
print([list(elem) for elem in tup])
# [
# [7, 4, 1],
# [8, 5, 2],
# [9, 6, 3]
# ]
arr = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
new = [row[:] for row in arr]
m = len(arr[0])
for x in range(0,m):
for j in range(0,m):
new[j][m-1-x] = arr[x][j]
print(new)
# [
# [7, 4, 1],
# [8, 5, 2],
# [9, 6, 3]
# ]
n번째까지
n번째부터
a = '123'
# a의 항목들에 int() 적용 convert to int
b = map(int, a) #object
print(set(b))
# {1, 2, 3}
List 항목들의 합 구하기
a = [1, 2, 3, 4, 0, 2]
print(sum(a))
#12
문자열 내 문자들의 합 구하기
a = '123402'
sum(map(int, a[:3]))
# 6
a[:3]
은 '123'1 + 2 + 3 = 6
A if 조건 else B
numbers = [1, 3, 5, 7]
for i in range(len(numbers)):
print(numbers[i], 'is smaller than 4') if numbers[i] < 4 else print(numbers[i], 'is bigger than 4')
# 1 is smaller than 4
# 3 is smaller than 4
# 5 is bigger than 4
# 7 is bigger than 4
A = a if 조건 else b
num = 5
type = 'odd' if num % 2 == 1 else 'even'
# odd
text = 'hello'
a = list(text)
print(a)
# ['h', 'e', 'l', 'l', 'o']
numbers = [1, 2, 3, 4, 5]
upDown = [num * num for num in numbers]
print(upDown)
# [1, 4, 9, 16, 25]
n = 4
m = 3
array = [[0] * m for _ in range(n)]
세로 n 가로 m
참조가 아니라 복사할 때
from copy import deepcopy
a = [1, 2, 3]
b = a
b[0] = 7
print(b)
#[7, 2, 3]
c = deepcopy(a)
c[2] = 9
print(c)
#[1, 2, 9]