#12-파이썬 기초 실습 - 리스트(List) - 1

2020. 1. 23. 10:29AI & BigData/Python Basics

파이썬 기초 실습 - 리스트(List) - 1

데이타 타입

* 리스트(List)
- 리스트는 여러 요소들을 갖는 집합(컬렉션)으로 새로운 요소를 추가하거나 갱신, 삭제가 가능합니다.
- 파이썬의 리스트는 동적배열(Dynamic Array)로서 자유롭게 확장할 수 있는 구조를 갖는다.
- 리스트는 그 안의 요소(element)들은 그 값을 자유롭게 변경할 수 있는 Mutable 데이타 타입이다.
- 리스트의 요소들은 Square bracket([ ])으로 둘러쌓여 컬렉션을 표현한다.
- 각 요소들은 서로 다른 타입이 될 수 있으며, 컴마(,)로 구분한다. 요소가 없는 빈 리스트는 "[]"와 같이 표현한다.

In [1]:

list_a = [] # 빈 리스트 생성
list_a = [True, 1, 2, 10, False, " 리스트 "]
list_a

Out[1]:

[True, 1, 2, 10, False, ' 리스트 ']

In [2]:

type(list_a) ## a의 타입이 list라는 것을 확인할수 있습니다.

Out[2]:

list

In [3]:

list_a = [1,2,3]
b = [1,2,list_a]  
# [1, 2, [1, 2, 3]] 리스트 안에 리스트 할당 가능
b

Out[3]:

[1, 2, [1, 2, 3]]

In [4]:

list_a[0]   # 여기서 [0]은 인덱스. 따라서 결과는 1

Out[4]:

1

In [5]:

list_a[0] = 100  # a = [100,2,3] 새로운 인덱스 0값을 넣어줌
list_a

Out[5]:

[100, 2, 3]

In [6]:

# 쥬피터 노트북 에서는 그대로 [1,2,3] 출력
# 기타 컴파일러에서는 print문을 이용하면 된다.
[1,2,3]

Out[6]:

[1, 2, 3]

In [7]:

['hi',1,[1,2]]

Out[7]:

['hi', 1, [1, 2]]

In [8]:

# 한글 변수명 사용 테스트...
리스트 = ['a','b','c']
리스트

Out[8]:

['a', 'b', 'c']

In [9]:

리스트.append('d')  # 리스트 에 d를 추가

In [10]:

리스트

Out[10]:

['a', 'b', 'c', 'd']

In [11]:

리스트[0]

Out[11]:

'a'

In [12]:

중첩리스트 = [1,2,3,[4,5,['가장 안쪽의 값']]]

In [13]:

중첩리스트[3]

Out[13]:

[4, 5, ['가장 안쪽의 값']]

In [14]:

중첩리스트[3][2]

Out[14]:

['가장 안쪽의 값']

In [15]:

중첩리스트[3][2][0]

Out[15]:

'가장 안쪽의 값'

1. 리스트 의 기본 복습

In [16]:

list_a = []
type(list_a) # <class 'list'>  # 변수의 타입을 확인 할때 사용함..

Out[16]:

list

In [17]:

id(list_a) # 2554983921096  # 컴퓨터 마다 값이 다르게 보입니다.

Out[17]:

1572373235016

In [18]:

# 파이썬 2.x 버전에서는 값이 고정이였지만.. 3.x버전 부터는 바뀌는것 같습니다..  ( 추가 확인 필요. )
hash(list_a)  # 고정값이 아니라서 접근이 안 된다.  TypeError: unhashable type: 'list' 발생함.
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-18-e071b6a332fe> in <module>
      1 # 파이썬 2.x 버전에서는 값이 고정이였지만.. 3.x버전 부터는 바뀌는것 같습니다..  ( 추가 확인 필요. )
----> 2 hash(list_a)  # 고정값이 아니라서 접근이 안 된다.  TypeError: unhashable type: 'list' 발생함.

TypeError: unhashable type: 'list'

In [19]:

hash('123')

Out[19]:

991422266091179680

2. 리스트를 튜플과의 비교

In [20]:

list_a = ()
print(type(list_a))    # <class 'tuple'>
print(id(list_a))      # 2554938458184
print(hash(list_a))    # 고정값이라 접근이 된다.  3527539
<class 'tuple'>
1572329291848
3527539

3. 사전과의 비교

In [21]:

list_a = {}
print(type(list_a))  # <class 'dict'>622932134536622881210440
print(id(list_a))
<class 'dict'>
1572374068104

In [22]:

print(hash(list_a))  # 고정값이 아니라서 접근이 안 된다.  TypeError: unhashable type: 'dict'
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-22-15dbc7e18d82> in <module>
----> 1 print(hash(list_a))  # 고정값이 아니라서 접근이 안 된다.  TypeError: unhashable type: 'dict'

TypeError: unhashable type: 'dict'

4. 리스트 특징 확인

In [23]:

# 내부 데이터의 변형이 쉽다.
list_a = [1,'3']      # 타입과 관계없이 다 집어 넣을 수 있습니다.
print(list_a)         # [1, '3']
print(len(list_a))    # 2
print('---'*10)

list_a[1] = 'Python'  # 데이터 변환이 쉽게 되어 있습니다.
print(list_a)         # [1, 'Python']
print('---'*10)

list_a.append('파이썬')  # 추가
print(list_a)           # [1, 'Python', '파이썬']
print('---'*10)

# 문자열을 리스트로 변환.
list_a = list('Python')  # ['P', 'y', 't', 'h', 'o', 'n']
print(list_a)
[1, '3']
2
------------------------------
[1, 'Python']
------------------------------
[1, 'Python', '파이썬']
------------------------------
['P', 'y', 't', 'h', 'o', 'n']

In [24]:

list(1)  # TypeError: 'int' object is not iterable
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-24-d34182c3e3e6> in <module>
----> 1 list(1)  # TypeError: 'int' object is not iterable

TypeError: 'int' object is not iterable

In [25]:

list_a = [1,2,3]
list_a * 3

Out[25]:

[1, 2, 3, 1, 2, 3, 1, 2, 3]

5. 리스트 생성을 쉽게 만들수 있다.

In [26]:

3 in list_a  # True

Out[26]:

True

In [27]:

list_a = range(15)  # range(0,15)
print(list_a)
list_a = list(list_a)
print(list_a) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
range(0, 15)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]

In [28]:

list_a[-1]    # 14

Out[28]:

14

6. 리스트의 연산

In [29]:

list_a = [1,2,3]
list_a

Out[29]:

[1, 2, 3]

In [30]:

list_a[0] = 100 + list_a[0]
list_a  # [101,2,3]

Out[30]:

[101, 2, 3]

7. 리스트 합치기

In [31]:

list_a = [1,2,3]
list_b = [4,5,6]
list_a+list_b  # [1, 2, 3, 4, 5, 6]

Out[31]:

[1, 2, 3, 4, 5, 6]

In [ ]: