본문 바로가기
python/Python_김왼손의 미운코딩 새끼

Part 7 ~ 8

by 2cong 2020. 3. 19.

7. 리스트 (List)

리스트

  • 여러 값을 한번에 저장 가능
  • 값 변경가능 / 순서 존재

가변(mutable) : 값 변경 가능 ex ) 리스트, 딕셔너리 등

불변(immutable) : 값 변경 불가능 ex) 문자열, 튜플 등

jina_List = [ ]
print (jina_List) // [ ]

 

 

jina_List2 = ['j', 'i', 'n', 'a']
print (jina_List2) // ['j', 'i', 'n', 'a']
print (jina_List2[0]) // j

 

리스트 값 추가하기

  • list.append( )를 사용해서 값 추가
  • 리스트가 없는 상태에는 append( )를 이용해 값 추가 불가능
animals = [ ]
print (animals) // [ ]

 

 

animals.append('cat')
print (animals) // ['cat']
animals.append('dog')
print (animals) // ['cat', 'dog']

 

리스트 인덱싱, 슬라이싱

인덱싱 - 위치를 이용해서 값에 접근하는 것 / 0부터 시작
문자열의 인덱싱, 슬라이싱과 유사함

animals = ['cat', 'dog', 'lion', 'tiger', 'rabbit', 'whale', 'bird']
print (animals[3]) // tiger
print (animals[4:6]) // ['rabbit',  'whale']

 

  • list.sort(): 리스트 안의 값을 정렬

예시)

animals = ['cat', 'dog', 'lion', 'tiger', 'rabbit', 'whale', 'bird', 'lion']
animals.sort()
print (animals)
// ['bird',  'cat',  'dog',  'lion',  'lion',  'rabbit',  'tiger',  'whale']

 

  • list.count(): 해당 값의 개수 count

예시)

animals = ['cat', 'dog', 'lion', 'tiger', 'rabbit', 'whale', 'bird', 'lion']
print (animals.count('lion')) // 2
print (animals.count(animals[2])) // 2
print (animals.count(animals[7])) // 2
print (animals.count('cat')) // 1

 

  • len(list) : 리스트의 요소 개수 구하기

리스트 내장 함수

예시)

animals = ['cat', 'dog', 'lion', 'tiger', 'rabbit', 'whale', 'bird', 'lion']
print (len(animals)) // 8

 

8. 듀플

듀플

  • 여러 값을 한번에 저장 가능
  • 값 변경 불가능

가변(mutable) : 값 변경 가능   ex ) 리스트, 딕셔너리 등

불변(immutable) : 값 변경 불가능    ex) 문자열, 튜플 등

 

예시)

jina_tuple = (1, 2, 3)
print (jina_tuple) // (1, 2, 3)
tuple2 = ('병아리', '닭', '토끼')
print (tuple2) // ('병아리', '닭', '토끼')

 

  • 듀플은 괄호를 쓰지 않아도 됨

예시)

 jina_tuple = 1, 2, 3
print (jina_tuple) // (1, 2, 3)
tuple2 = '병아리', '닭', '토끼'
print (tuple2) // ('병아리', '닭', '토끼')

패킹, 언패킹

  • 패킹(packing) : 여러 개의 값을 한꺼번에 묶는 것

예시)

  numbers = (1, 2, 3, 4, 5)

예시와 같이 여러 개의 데이터를 묶어 변수에 대입하는 것을 packing이라고 부름

 

 

  • 언패킹(unpacking) : 묶여 있는 값을 풀어놓는 것

예시)

numbers = (1, 2, 3, 4, 5) #패킹
a,b,c,d,e = numbers #언패킹
print (b) // 2

패킹의 예시의 변수에 또 다른 데이터 꾸러미를 대입
이와 같이 데이터 꾸러미의 요소를 여러 개의 변수에 나누어 담는 방법을 unpacking

 

주의사항 1 ) 대입문에서 양 변의 시퀀스 길이는 일치해야 함
*시퀀스(sequence)는 데이터에 순서(번호)를 붙여 나열한 것

 

주의사항 2)

위의 예시는 다음과 같이 잘 진행됨

numbers = (1, 2, 3, 4, 5) #패킹
a,b,c,d,e = numbers #언패킹
print(b) // 2

만약 아래와 같을 때

경우 1 )

numbers = a,b,c,d,e  #패킹
_1, _2, _3, _4, _5 = numbers #언패킹
print(_2) // name 'a' is not defined

진행되지 않음 > 이유는 a,b,~가 문자열인데 (' ') 또는 (" ")로 묶여쓰이지 않아서
변수 = '문자열' 이어야 함

 

따라서 아래와 같이 고침

numbers = 'a','b','c','d','e'  #패킹
_1, _2, _3, _4, _5 = numbers #언패킹
print(_2) // b

경우 2)

numbers = 'a','b','c','d','e'  #패킹
1, 2, 3, 4, 5 = numbers #언패킹
print(2) // can't assign to literal

진행되지 않음 > 이유는 1, 2, 3 ~ 이 변수 Naming rule에 맞지 않아서

Naming rule

  • 글자나 _를 사용
  • 대문자와 소문자를 구분
  • 띄어쓰기 포함하지 않음
  • 숫자로 시작하는 이름은 사용할 수 없음

따라서 아래와 같이 고치면 됨

numbers = 'a','b','c','d','e'  #패킹
_1, _2, _3, _4, _5 = numbers #언패킹
print(_2) // b

ref) https://python.bakyeono.net/chapter-5-5.html

'python > Python_김왼손의 미운코딩 새끼' 카테고리의 다른 글

Part 13 ~ 17  (0) 2020.03.20
Part 9 ~ 12  (0) 2020.03.20
Part 6  (0) 2020.03.19
Part 1 ~ 5  (0) 2020.03.17

댓글