# 빈 리스트 생성
= []
my_list print(my_list)
[]
list
)와 튜플(tuple
) 시퀀스이 장에서는 리스트(list
)와 튜플(tuple
)을 다룬다. 둘 모두 파이썬의 기본 시퀀스 타입이다.
list
)
tuple
)
list
) 만들기리스트 리터럴은 []
안에 값들을 콤마(,
)로 분리하여 넣어 만든다. 값들은 어떤 타입이든 상관없으며, 서로 다른 타입의 값들도 하나의 리스트에 포함될 수 있다.
# 빈 리스트 생성
= []
my_list print(my_list)
[]
= [1, 3, 4, 5, "a", "b", "c", "d", True, False]
my_list print(my_list)
[1, 3, 4, 5, 'a', 'b', 'c', 'd', True, False]
list()
함수를 사용해서 만들 수도 있다. 이 함수를 사용할 때 주의할 것은 인자가 없으면 빈 리스트를 만들고, 인자를 줄 때 값들을 모든 하나의 iterable
로 주어야 한다는 점이다.
print(list())
print(list((1, 2, 3)))
print(list("abc"))
print(list([4, 5, 6]))
[]
[1, 2, 3]
['a', 'b', 'c']
[4, 5, 6]
list() 함수는 주어진 iterable
을 가지고 메모리에 실제화된 값을 만들 때 사용하는 경우가 많다(materialize).
print(range(10))
print(list(range(10)))
range(0, 10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
어떤 iterable
이 있을 때 이것을 리스트로 만들 때 가장 잘 활용되는 방법은 list comprehension이다. 이 방법은 반드시 알고 있어야 한다.
** 2 for x in range(10) if x % 2 == 0] [x
[0, 4, 16, 36, 64]
Sequence
)의 한 종류리스트는 Sequence의 한 종류이기 때문에 앞 장에서 설명한 Sequence의 내용이 모두 적용된다. 그래서 5에서 설명한 내용을 리스트에 적용할 수 있다.
= [1, 2, 3, 4, 5]
my_list
# 인덱싱
print(my_list[0])
print(my_list[-1])
# 슬라이싱
print(my_list[1:3])
print(my_list[:3])
print(my_list[3:])
# concatenation
print(my_list + [6, 7])
# repetition
print(my_list * 2)
1
5
[2, 3]
[1, 2, 3]
[4, 5]
[1, 2, 3, 4, 5, 6, 7]
[1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
= [1, 2, 3, 4]
list1 = ["a", "b", "c", "d"]
list2 print(list(zip(list1, list2)))
for item in zip(list1, list2):
print(item)
[(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd')]
(1, 'a')
(2, 'b')
(3, 'c')
(4, 'd')
= ["a", "b", "c", "d"]
my_list list(enumerate(my_list))
[(0, 'a'), (1, 'b'), (2, 'c'), (3, 'd')]