18) 슬라이스에 루프 실행하기
리스트의 부분집합에 루프를 실행하려면 슬라이스에 루프를 실행하면 됩니다. 다음 예제를 통해 처음 세 개에 루프를 실행하고 세 개의 이름을 출력하는 것을 확인할 수 있습니다.
예제41)
dogs = ['merry', 'martin', 'amy', 'bob', 'eli']
print("Here are the first three dogs on my team")
for dog in dogs[:3]: #1
print(dog.title())
결과 값
Here are the first three dogs on my team
Merry
Martin
Amy
#1에서는 전체 리스트 항목에 루프를 실행하지 않고, 처음 3개에만 루프를 실행합니다.
19) 리스트 복사하는 법
예제 42)
my_foods = ['pizza', 'pasta', 'gelato'] #1
friend_foods = my_foods[:] #2
print(my_foods)
print(friend_foods)
결과 값
['pizza', 'pasta', 'gelato']
['pizza', 'pasta', 'gelato']
#2의 [ : ]표시는 첫번째 인덱스가 없으면 0번째 부터 시작하며 마찬가지로 마지막 인덱스가 없으면 마지막 항목까지 전부 포함합니다.
예제43)
my_foods = ['pizza', 'pasta', 'gelato']
friend_foods = my_foods[:] #1
my_foods.append('pork') #2
friend_foods.append('chicken') #3
print(my_foods)
print(friend_foods)
결과 값
['pizza', 'pasta', 'gelato', 'pork']
['pizza', 'pasta', 'gelato', 'chicken']
예제44)
my_foods = ['pizza', 'pasta', 'gelato']
friend_foods = my_foods[:]
#이 코드는 원하는 대로 동작하지 않습니다.
friend_foods = my_foods #1
my_foods.append('pork')
friend_foods.append('chicken')
print(my_foods)
print(friend_foods)
결과 값
['pizza', 'pasta', 'gelato', 'pork', 'chicken']
['pizza', 'pasta', 'gelato', 'pork', 'chicken']
예제44의 #1에서는 슬라이스 없이 두 리스트가 같다고 표현했습니다. 하지만 파이썬에서는 =가 단순히 새 변수(friend_foods)와 리스트(my_foods)를 연결하는 기능만 합니다. 즉, 두 변수는 같은 리스트를 가리킵니다. 그리고 이것은 우리가 원하는 결과를 가져올 수 없습니다.
튜플 (tuple)
튜플은 항목을 바꿀 수 없는 리스트를 만들 때 사용합니다.
튜플과 일반 리스트의 차이는 튜플의 경우 대괄호[ ] 대신 소괄호 ( )를 쓴다는 점입니다.
예제1)
dimensions = (200, 50) #1
print(dimensions[0]) #2
print(dimensions[1]) #2
결과 값
200
50
예제1의 튜플을 수정하려고 할 때 아래와 같은 오류가 발생합니다.
dimensions = (200, 50)
dimensions[0] = 250
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-13-258c8b06eee2> in <module>
1 dimensions = (200, 50)
----> 2 dimensions[0] = 250
TypeError: 'tuple' object does not support item assignment
튜플을 정의하는 것은 , 콤마 입니다. 튜플 주위의 괄호는 가독성을 높이기 위한 장치일 뿐, 항목이 단 하나만 들어있는 튜플을 정의한다고 하더라도 다음과 같이 끝에 콤마를 붙여야 합니다.
t_one = (3,)
1) 튜플의 모든 값에 루프 실행하는 법
리스트에서 했던 것과 마찬가지로 튜플에서도 for 루프를 써서 모든 값에 루프를 실행할 수 있습니다.
예제2)
dimensions = (200, 50)
for dimension in dimensions:
print(dimension)
결과 값
200
50
2) 튜플 덮어쓰는 법
튜플은 수정할 수 없지만 튜플을 가리키던 변수에 새 값을 할당하는 것은 가능합니다.
예제3)
dimensions = (200, 50) #1
print("Original dimensions:")
for dimension in dimensions:
print(dimension)
dimensions = (400, 100) #2
print("\nModified dimensions:") #3
for dimension in dimensions:
print(dimension)
결과 값
Original dimensions:
200
50
Modified dimensions:
400
100
#1에서 시작하는 행은 튜플을 정의하고 처음 크기를 출력합니다.
#2에서는 dimensions변수에 새 튜플을 연결합니다.
#3에서는 새 크기를 출력합니다.
변수 값을 새로 할당하는 것은 유효한 방법이므로 이번에는 파이썬이 에러를 일으키지 않습니다.
'공부 > 코딩' 카테고리의 다른 글
⛷ [파이썬] 파이썬 기초 정리 (10) : IF문 (0) | 2022.11.09 |
---|---|
⛷ [파이썬] 파이썬 기초 정리 (9) : 조건테스트 / 불리언 표현식 (0) | 2022.11.08 |
⛷ [파이썬] 파이썬 기초 정리 (7) : 리스트 _ 4 (0) | 2022.11.06 |
⛷ [파이썬] 파이썬 기초 정리 (6) : 리스트 _ 3 (0) | 2022.11.05 |
⛷ [파이썬] 파이썬 기초 정리 (5) : 리스트 _ 2 (0) | 2022.11.04 |
댓글