이와 같은 방법으로 리스트를 만들수 있다.
a = [i for i in range(10)] print(a) -> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] b = list(i for i in range(10)) print(b) -> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
range(10)에서 숫자를 꺼내와 i로 들어가 리스트로 작성되는 방식이다.
c = [i * 2 for i in range(10)] print(c) -> [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
이런식으로 사칙연산을 섞어서 사용할 수 있다.
d = [i for i in range(10) if i % 2 == 0] print(d) -> [0, 2, 4, 6, 8]
이런식으로 조건문을 붙여 조건에 맞는 요소만 넣어 리스트를 작성할 수 있다.
e = [i * j for j in range(2, 5) for i in range(1, 3)] print(e) -> [2, 4, 3, 6, 4, 8]
이런식으로 조건문을 여러번 사용할 수 있다.
map은 리스트의 요소를 지정된 함수로 처리해주는 함수입니다(map은 원본 리스트를 변경하지 않고 새 리스트를 생성합니다).
map을 활용하여 리스트, 튜플을 작성할 수 있습니다.
a = [1.2, 2.5, 3.7, 4.6] a = list(map(int, a)) print(a) -> [1, 2, 3, 4]
리스트 a를 받아와 정수로 전환해주었습니다.
a = list(map(str, range(10))) print(a) -> ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
a = [[0 for j in range(2)] for i in range(3)] print(a) -> [[0, 0], [0, 0], [0, 0]]
for in을 활용한 리스트 작성법을 두번 겹쳐서 사용하였다.
제일 안쪽 괄호의 [0 for j in range(2)]를 통해 0작성이 두번 반복되며 [0, 0]이 생성되고 그 밖에 for i in range(3)]을 통해 [0, 0]이 세번 반복되어 [[0, 0], [0, 0], [0, 0]]라는 형태가 되었다.
a = [[0, 0] for i in range(3)] print(a) -> [[0, 0], [0, 0], [0, 0]]
[0, 0]을 세번 반복하여 [[0, 0], [0, 0], [0, 0]]을 작성하였다.
a = [[10, 20], [30, 40]] b = a b[0][0] = 5000 print(a, b) -> [[5000, 20], [30, 40]] [[5000, 20], [30, 40]]
a를 복사하여 b에 할당한 뒤 b의 요소를 변경하였더니 a의 요소 또한 변경 되었다.
a = [[10, 20], [30, 40]] b = a.copy() b[0][0] = 5000 print(a, b) -> [[5000, 20], [30, 40]] [[5000, 20], [30, 40]]
copy() 메서드를 사용해도 같은 모습을 보여준다.
'Hello, world!'.replace('world', 'Python') 'Hello, Python!'
문자열에서 'world'를 찾아 'Python'으로 바꿔주었다.
a = ='apple pear grape pineapple orange'.split() print(a) -> ['apple', 'pear', 'grape', 'pineapple', 'orange']
.split(기준) 으로 기존 문자열에서 공백을 기준으로 나누어 리스트로 저장하였다.
b = 'apple, pear, grape, pineapple, orange'.split(', ') print(b) -> ['apple', 'pear', 'grape', 'pineapple', 'orange']
.split(', ')으로 기존 문자열에서 ', '기준으로 나누어 리스트로 저장하였다.
a = ['apple', 'pear', 'grape', 'pineapple', 'orange'] print(' '.join(a)) -> apple pear grape pineapple orange
.join()을 통해 리스트를 ' '으로 묶어서 하나의 문자열로 만들었다.
a = ['apple', 'pear', 'grape', 'pineapple', 'orange'] print('-'.join(a)) -> apple-pear-grape-pineapple-orange
.join()앞에 '-'를 넣어 리스트를 -부호로 묶어주는것도 가능하다.
print(' Python '.lstrip()) -> 'Python ' print(' Python '.rstrip()) -> ' Python' print(' Python '.strip()) -> 'Python'
.lstrip()과 .rstrip()은 각각 왼쪽과 오른쪽의 공백을 지워주고 .strip()은 문자열 양쪽의 공백을 지워준다.
print(', python.'.lstrip(',.')) -> ' python.' print(', python.'.rstrip(',.')) -> ', python' print(', python.'.strip(',.')) -> ' python'
.lstrip() .rstrip() .strip()의 괄호안에 문자열을 넣게되면 해당 문자열이 연속된 부분까지 메소드에 따라서 방향에 맞춰 제거합니다.
print('35'.zfill(4)) -> 0035 print('3.5'.zfill(6)) -> 0003.5 print('hello'.zfill(10)) -> 00000hello
문자열의 왼쪽에 길이에 맞춰 숫자 0을 추가합니다. 문자열도 가능합니다.
print('apple pineapple'.find('pl')) -> 2 print('apple pineapple'.find('xy')) -> -1 print('apple pineapple'.rfind('pl')) -> 12
.find(문자열)과 .rfind(문자열)은 각각 왼쪽과 오른쪽부터 해당 문자열을 찾아 가장 처음 발견된 위치를 반환합니다. 만약 해당 문자열이 없다면 -1을 반환합니다.
print('apple pineapple'.index('pl')) -> 2 print('apple pineapple'.rindex('pl')) -> 12
.index(문자열)과 .rindex(문자열) 또한 각각 왼쪽과 오른쪽부터 해당 문자열을 찾아 가장 처음 발견된 위치를 반환합니다. 만약 해당 문자열이 없다면 에러를 발생시킵니다.