#13-파이썬 기초 실습 - 리스트(List) -2

2020. 1. 24. 10:30AI & BigData/Python Basics

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

리스트의 차원구조.

  • 2차원 구조. (다차원도 가능)

In [1]:

list_a = [[1,2,3],[4,5,6],[7,8,9]]
list_a[1][2]                        # 6. 인덱스 1번 리스트의 2번 인덱스 값을 출력한다.

Out[1]:

6

In [2]:

list_a = [[1,2,3],
          [4,5,6],
          [7,8,9]]
list_a[2][1]                        # 8. 인덱스 2번 리스트의 1번 인덱스 값을 출력한다.

Out[2]:

8

리스트의 레퍼런스 변경

  • id의 변경. 다른 리스트를 할당하면 다른 레퍼런스가 달라지게 된다.

In [3]:

list_a = [1,2,3]
id(list_a)  # 2135159245064  # id 값을 실행 할때 마다 다르게 변경 된다.

Out[3]:

2127536941512

In [4]:

list_a = ['1','2','3']
id(list_a)  # 2135159432840  # id 값을 실행 할때 마다 다르게 변경 된다.

Out[4]:

2127536941448

리스트 내부 데이터의 삭제

In [5]:

list_a = [1,2,3,4,1,2,3,4]
del list_a[5]  # a[5]을 삭제. 인덱스 값은 하나씩 내려간다.
list_a

Out[5]:

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

In [6]:

# [1, 2, 3, 4, 1, 2, 3, 4]
# [1, 2, 3, 4, 1, 3, 4]    --> 2가 삭제 되었다.

In [7]:

list_a[1]  # 결과는 2. 인덱스 값이 하나 내려가서 2가 출력된다.

Out[7]:

2

In [8]:

del list_a  # 리스트 자체를 삭제

In [9]:

list_a  # 오류가 발생. NameError: name 'a' is not defined
   # 위에서 del a로 삭제를 했기 때문에. 에러가 발생한다.
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-9-11c659f80608> in <module>
----> 1 list_a  # 오류가 발생. NameError: name 'a' is not defined
      2    # 위에서 del a로 삭제를 했기 때문에. 에러가 발생한다.

NameError: name 'list_a' is not defined

인덱싱을 통한 중첩 리스트

  • 형태 분석

In [10]:

list_a = [1,2,3]
list_b = [4,5,6]
list_c = [list_a,list_b,7,8,9]  # [[1, 2, 3], [4, 5, 6], 7, 8, 9]
list_c

Out[10]:

[[1, 2, 3], [4, 5, 6], 7, 8, 9]

In [11]:

list_c[1][2]  # 결과는 6. a에 접근이 가능하다.

Out[11]:

6

In [12]:

list_c[2]  # 결과는 5. 꼭 [][]일 필요는 없다.

Out[12]:

7

In [13]:

list_c[3]  # [[1, 2, 3], [4, 5, 6], 7, 8, 9]
      #      0          1      2  3  4

Out[13]:

8

In [14]:

list_c[4]

Out[14]:

9

In [15]:

list_c[2][0]  # 에러가 발생. TypeError: 'int' object is not subscriptable
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-15-a7be6d83c56e> in <module>
----> 1 list_c[2][0]  # 에러가 발생. TypeError: 'int' object is not subscriptable

TypeError: 'int' object is not subscriptable

1. 패킹과 언패킹. 패킹은 원래 리스트의 속성이고 언패킹은 리스트의 각 요소들을 다른 객체에 배분하는 과정.

In [16]:

list_a = [1, 2, 'hello', 'python']

In [17]:

x,y,z,p = list_a  # a의 값과 앞에 변수가 같아야 에러가 없다.

In [18]:

print(x)
print(y)
print(z)
print(p)
1
2
hello
python

In [19]:

list_a = [1,2,3,4]
x,y,z = list_a  # 언패킹을 하기 위해서는 동일한 갯수가 필요하다.
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-19-b7e55926ff41> in <module>
      1 list_a = [1,2,3,4]
----> 2 x,y,z = list_a  # 언패킹을 하기 위해서는 동일한 갯수가 필요하다.

ValueError: too many values to unpack (expected 3)

In [ ]: