[Python]Basic1

Jae Gyeong Lee·2022년 8월 11일
0

1. Comprehension

  • 반복 가능한 iterable자료형을 만들 때 사용.
  • for문, if문이 포함된 긴 줄의 코드를 한 줄로 표현할 수 있다.
  • Python2는 List Comprehension만 지원, Python3 부터 Set Comprehension, Dictionary Comprehension 추가 지원.

1.1. List Comprehension

  • [ ]으로 comprehension 표현식을 감싼다.

1.1.1. for문 한 줄 표현하는 경우

  • 표현식: [출력 값 for 원소 in 원소가 담긴 데이터]
a_list = []
for i in a:
	a_list.append(num*2)

a_list = [num*2 for i in a]

1.1.2. for문 안에 if문이 포함된 경우

  • 표현식: [출력 값 for 원소 in 원소가 담긴 데이터 if 조건]
a_list = []
for i in a:
	if i%2 == 0:
    	a_list.append(i*2)    

a_list = [i*2 for i in a if i%2 == 0]  

1.1.3. 이 중 for문을 한 줄로 표현하는 경우

  • 표현식: [출력 값 for 원소 in 원소가 담긴 데이터1 for 원소2 in 원소가 담긴 데이터2]
a_list = []
for i in range(0, 100):
	for i_2 in range(1, 5):
    	a_list.append(i*i_2)

a_list = [i*i_2 for i in range(0, 100) for i_2 in range(1, 5)]

1.2. Set Comprehension

  • list comprehension과 비슷하지만, { }으로 comprehension 표현식을 감싼다.
  • 출력되는 값 간의 순서가 없으며, unique한 값만 갖는다(set의 특성).
  • 표현식: {출력 값 for 원소 in 원소가 포함된 데이터}
list_data = ['ㄱ','ㄱ','ㄴ','ㄷ','ㄹ','ㅁ','ㅁ']

result = {a*2 for a in list_data}
print(type(result))
print(result)

=>
<class 'set'>
{'ㄷㄷ', 'ㄴㄴ', 'ㄱㄱ', 'ㅁㅁ', 'ㄹㄹ'}

1.3. Dictionary Comprehension

  • Set Comprehension과 비슷하지만, 출력 값이 key:value로 나온다.
  • 표현식: {key:value for 원소1, 원소2 in 원소가 포함된 데이터}
list_data = ['ㄱ','ㄱ','ㄴ','ㄷ','ㄹ','ㅁ','ㅁ']

result = {key:value for key, value in enumerate(list_data)}
print(type(result))
print(result)

=>
<class 'dict'>
{0: 'ㄱ', 1: 'ㄱ', 2: 'ㄴ', 3: 'ㄷ', 4: 'ㄹ', 5: 'ㅁ', 6: 'ㅁ'}

2. Assignmet Operators

+=

  • a = 1 는 a = a+1 와 같다.

-=

  • a -= 은 a = a-1 과 같다.

=> *(곱하기), /(나누기), %(나머지), **(제곱), //(몫) 동일.

3. Copy

shallow copy

  • 변수를 복사했지만 참조한 곳은 동일
  • 대입(=), [:] 슬라이싱, 객체.copy, copy.copy

Deep Copy

  • 같은 값을 가진 완전히 다른 변수
  • copy.deepcopy

https://blockdmask.tistory.com/576
https://black-hair.tistory.com/49

profile
안녕하세요 반갑습니다. 공부한 내용들을 기록하고 있습니다.

0개의 댓글