파이썬 기초 문법 - 06

Dalbi·2021년 3월 22일
0
post-thumbnail
post-custom-banner

Python

for in 으로 list 작성하기

  • [식 for 변수 in 리스트]
  • list(식 for 변수 in 리스트)

이와 같은 방법으로 리스트를 만들수 있다.

	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은 원본 리스트를 변경하지 않고 새 리스트를 생성합니다).

  • list(map(함수, 리스트))
  • tuple(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']

list를 만드는 몇가지 방법들

	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]]을 작성하였다.

copy

	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() 메서드를 사용해도 같은 모습을 보여준다.

.replace('바꿀 문자열', '바뀔 문자열')

'Hello, world!'.replace('world', 'Python')
'Hello, Python!'

문자열에서 'world'를 찾아 'Python'으로 바꿔주었다.

.split(기준)

	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(', ')으로 기존 문자열에서 ', '기준으로 나누어 리스트로 저장하였다.

양식.join(리스트)

	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()앞에 '-'를 넣어 리스트를 -부호로 묶어주는것도 가능하다.

.lstrip() & .rstrip() &.strip()

	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()의 괄호안에 문자열을 넣게되면 해당 문자열이 연속된 부분까지 메소드에 따라서 방향에 맞춰 제거합니다.

문자열.zfill(길이)

	print('35'.zfill(4))
    -> 0035
	print('3.5'.zfill(6))
    -> 0003.5
	print('hello'.zfill(10))
    -> 00000hello

문자열의 왼쪽에 길이에 맞춰 숫자 0을 추가합니다. 문자열도 가능합니다.

.find(문자열) & .rfind(문자열)

	print('apple pineapple'.find('pl'))
    -> 2
    	print('apple pineapple'.find('xy'))
    -> -1
    	print('apple pineapple'.rfind('pl'))
    -> 12

.find(문자열)과 .rfind(문자열)은 각각 왼쪽과 오른쪽부터 해당 문자열을 찾아 가장 처음 발견된 위치를 반환합니다. 만약 해당 문자열이 없다면 -1을 반환합니다.

.index(문자열) & .rindex(문자열)

	print('apple pineapple'.index('pl'))
    -> 2
    	print('apple pineapple'.rindex('pl'))
    -> 12

.index(문자열)과 .rindex(문자열) 또한 각각 왼쪽과 오른쪽부터 해당 문자열을 찾아 가장 처음 발견된 위치를 반환합니다. 만약 해당 문자열이 없다면 에러를 발생시킵니다.

profile
백엔드..?
post-custom-banner

0개의 댓글