#15-파이썬 기초 실습 - 리스트(List)-4

2020. 1. 26. 10:32AI & BigData/Python Basics

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

[리스트 조작 함수]

No. 함수 설명 사용법(값)
1 append() 마지막에 값을 추가 한다. data.append()
2 pop() 마지막 값을 빼고 빼낸 값 을 삭제 data.pop()
3 sort() 항목 정렬 ( 기본값 : 오름차순 정렬) data.sort()
4 reverse() 항목 순서를 역순으로 변경 한다. data.reverse()
5 index() 지정한 값을 찾아서 그 위치를 반환 data.index()
6 insert() 지정된 위치에 값을 삽입. data.insert()
7 remove() 리스트에 저장된 값 삭제 data.remove()
8 extend() 리스트 뒤에 리스트를 추가한다. data.extend()
9 count() 리스트에서 찾을 값의 개수를 센다. data.count()
10 del() 리스트에서 해당 위치의 항목을 삭제 data.del()
11 len() 리스트에 포함된 전체 항목 개수를 센다. data.len()
12 copy() 리스트를 복사 합니다. data.copy()
  • 파이썬 리스트의 append와 extend를 확인해보겠습니다.
  • list.append(x)는 리스트 끝에 x 1개를 넣습니다.
  • list.extend(iterable)는 리스트 끝에 iterable의 모든 항목을 넣습니다.

리스트 인덱싱(Indexing)

  • 리스트의 특정 한 요소만을 선택하기 위하여 인덱싱(Indexing)을 사용하는데,
  • 첫번째요소는 "리스트[0]",
  • 두번째 요소는 "리스트[1]" 처럼 표현한다.
  • 즉, 아래 예제에서 처럼 리스트 a 가 있을 때, a[1] 는 두번째 요소 10을 가리킨다.
  • 파이썬 인덱싱에서 한가지 특별한 표현은 인덱스에 -1, -2 같은 음수를 사용할 수 있다는 점이다.
  • 이 때, -1은 현재 리스트의 마지막 요소를, -2는 뒤에서 두번째 요소를 가리킨다.

In [1]:

list_x = ['1','2','3']
list_y = ['4','5']
list_x.append(list_y)

list_x   # list_x에 append를 사용했을때에는 list_y의 원소를 그대로 넣었습니다.

Out[1]:

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

In [2]:

list_x[3] # y의 값이 3번째에 들어가 있는것을 확인할수 있습니다.

Out[2]:

['4', '5']

In [3]:

list_x = ['1','2','3']
list_y = ['4','5']
list_x.extend(list_y)

list_x  

Out[3]:

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

In [4]:

# list_x에 extend를 사용했을때에는 list_y의 값이 ['4', '5'] 가 아닌 4 값이 저장되어 있습니다.
list_x[3]  # list_y의 배열 값이해제된 상태로 들어가 있습니다.

Out[4]:

'4'

In [5]:

# 위에서 처럼 extend를 이중 배열러 넣어봤습니다.
list_x = ['1','2','3']
list_y = [['4','5'],['6','7']]
list_x.extend(list_y)

list_x

Out[5]:

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

In [6]:

# extend를 사용했을때 이중 배열을 사용해봤습니다. 이때... 배열 그대로 들어가 있습니다.
list_x[3]

Out[6]:

['4', '5']

In [7]:

list_data = [1,2,3,4]
list_data

Out[7]:

[1, 2, 3, 4]

In [8]:

# 리스트의 끝에 이터러블의 모든 항목을 덧붙여서 확장합니다. a[len(a):] = iterable 와 동등합니다.
list_data[len(list_data):] = '2'
list_data

Out[8]:

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

In [9]:

# 위에서 len(list_data) 를 추가 한것 처럼 동일하게 값이 삽입이 됩니다.  --> 실행 할때마다 생성이 됨.
list_data.extend('3')
list_data

Out[9]:

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

1. 리스트 데이터 추가

In [10]:

# 주어진 위치에 항목을 삽입합니다. 
# 첫 번째 인자는 삽입되는 요소가 갖게 될 인덱스입니다. 
# 그래서 list_data.insert(0, x) 는 리스트의 처음에 삽입하고, 
# list_data.insert(len(list_data), x) 는 list_data.append(x) 와 동등합니다.
i = 3
x = '33'
list_data.insert(i, x)
list_data
# 실행을 할때마다 3번째에 추가가 되고 3번째 있던 값은 뒤로 밀려 갑니다.

Out[10]:

[1, 2, 3, '33', 4, '2', '3']

2. 리스트 데이터 삭제

  • 리스트에서 값이 x 와 같은 첫 번째 항목을 삭제합니다.
  • 그런 항목이 없으면 ValueError가 표시됩니다.

In [11]:

list_data

Out[11]:

[1, 2, 3, '33', 4, '2', '3']

In [12]:

x = '33'
list_data.remove(x)
list_data

Out[12]:

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

In [13]:

x = '3'
list_data.remove(x)
list_data

Out[13]:

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

3. 리스트 팝(pop)

  • 리스트에서 주어진 위치에 있는 항목을 삭제하고, 그 항목을 돌려줍니다.
  • 인덱스를 지정하지 않으면, list_data.pop() 은 리스트의 마지막 항목을 삭제하고 돌려줍니다.
  • (메서드 시그니처에서 i 를 둘러싼 꺾쇠괄호는 매개변수가 선택적임을 나타냅니다.
  • 그 위치에 꺾쇠괄호를 입력해야 한다는 뜻이 아닙니다.
  • 이 표기법은 파이썬 라이브러리 레퍼런스에서 지주 등장합니다.)

In [14]:

list_data

Out[14]:

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

In [15]:

# 리스트 데이터의 마지막 값이 삭제가 됩니다.
list_data.pop()
list_data

Out[15]:

[1, 2, 3, 4]

4. 리스트 clear

In [16]:

# 리스트의 모든 항목을 삭제합니다. del list_data[:] 와 동등합니다.
list_data.clear()
list_data

Out[16]:

[]

In [17]:

x = ['2','3']
list_data = ['1','2','3','4','5','6','7','8','9','0']

In [18]:

# 리스트에 있는 항목 중 값이 x 와 같은 첫 번째 것의 0부터 시작하는 인덱스를 돌려줍니다. 그런 항목이 없으면 ValueError 를 일으킵니다.
# 지정한 값을 찾아서 위치를 반환 합니다.
# list.index( x [ , 시작 [ , 끝 ] ] )
list_data.index(x[1])

Out[18]:

2

In [19]:

list_data.index(x[1],0,5)  # 0 start 5 는 stop 사이의 x[1]의 값이 있으면 반환을 하고 없으면 valueError을 처리함..

Out[19]:

2

In [20]:

list_data.index(x[1],0,2)  # 0 start 5 는 stop 사이의 x[1]의 값이 있으면 반환을 하고 없으면 valueError을 처리함..
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-20-ee7f876def6f> in <module>
----> 1 list_data.index(x[1],0,2)  # 0 start 5 는 stop 사이의 x[1]의 값이 있으면 반환을 하고 없으면 valueError을 처리함..

ValueError: '3' is not in list

In [21]:

print(x)
print(list_data)
['2', '3']
['1', '2', '3', '4', '5', '6', '7', '8', '9', '0']

In [22]:

# 선택적인 인자 start 와 end 는 슬라이스 표기법처럼 해석되고, 
# 검색을 리스트의 특별한 서브 시퀀스로 제한하는 데 사용됩니다. 
# 돌려주는 인덱스는 start 인자가 아니라 전체 시퀀스의 시작을 기준으로 합니다.
list_data.count(x)
# 리스트에서 x 가 등장하는 횟수를 돌려줍니다.

Out[22]:

0

In [23]:

list_data.sort(key=None, reverse=False)
# 리스트의 항목들을 제자리에서 정렬합니다 (인자들은 정렬 커스터마이제이션에 사용될 수 있습니다. 설명은 sorted() 를 보세요).
list_data

Out[23]:

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

In [24]:

list_data.reverse()
# 리스트의 요소들을 제자리에서 뒤집습니다.
list_data

Out[24]:

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

In [25]:

b = list_data.copy()
# 리스트의 얕은 사본을 돌려줍니다. a[:] 와 동등합니다.
print(f"list_data : {list_data}")
print(f" b의 data : {b}")
list_data == b
list_data : ['9', '8', '7', '6', '5', '4', '3', '2', '1', '0']
 b의 data : ['9', '8', '7', '6', '5', '4', '3', '2', '1', '0']

Out[25]:

True

In [ ]: