Python

[07.15] 파이썬 3일차 - 리스트 1

ljw4104 2021. 7. 15. 01:03

1. 선언

fruits = ['사과', '오렌지', '딸기', '포도', '키위', '수박']
list1 = [5, 10.2, '탁구', True, [4, 5, 6]]
numbers = list(range(1, 10, 2))
  1. 리스트명 = [데이터, 데이터, 데이터,...] 와 같이 기본적으로 선언이 가능하다.
  2. 리스트의 데이터는 모두 같은 자료형이 들어갈 필요가 없다...
  3. list()함수는 list를 만드는 함수이다. 리스트를 만들면서 범위를 지정해서 자동으로 숫자가 들어가도록 했다.

출력 결과


2. 요소 추가

여러가지 함수들이 존재한다.

  • append(data) : 리스트의 끝에 특정 요소를 추가한다.
  • insert(index, data) : 리스트의 특정 인덱스에 요소를 추가한다.
  • list.extend(_list) : list와 _list를 연결하여 확장한다.
  • a + b : 리스트 a와 b를 병합한다.  

append.py

a = ['red', 'green', 'blue']
print('before append ==> ', a)
a.append('yellow')
print('after append ==> ', a)

 

insert.py

a = ['red', 'green', 'blue']
print('before insert(1, black) ==> ', a)
a.insert(1, 'black')
print('after insert(1, black) ==> ', a)

 

extend.py

a = ['red', 'green', 'blue']
b = ['purple', 'white']
print('before extend ==> ', a)
a.extend(b)
print('after extend ==> ', a)


2. 요소 삭제

  • list.pop(index) : 해당 인덱스의 요소를 삭제한다. del list[index]와 같은 동작을 한다.
  • list.remove(data) : 해당 데이터의 요소를 삭제한다.
  • list.clear() : 리스트를 초기화한다.

pop.py

a = list(range(10, 101, 10))  # [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
index = a.index(30)
print('before a[%d] delete ==> ' % index, a)

a.pop(index)
print('after a[%d] delete ==> ' % index, a)

 

removeNclear.py

a = list(range(10, 101, 10))  # [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
print('before 80 delete ==> ', a)
a.remove(80)
print('after 80 delete ==> ', a)

a.clear()
print('after list a clean() ==> ', a)


3. 요소 카운트

리스트에서 특정 값을 가지는 요소가 몇 개인지를 셀 수 있다.

tmp = ['aa', 'bb', 'cc', 'aa', 'b', 'ccc']
length = tmp.count('aa')
print('\'aa\' number into tmp list ==> %d' % length)


4. 리스트 정렬

sort() : 오름차순, sort(reverse=True) : 내림차순 . 간단하다.

a = [8, 1, 7, 51, 31, 87, 19, 44, 32, 50]
print('before list a sort() ==> ', a)
a.sort()
print('after list a sort() ==> ', a)

a.sort(reverse=True)
print('after list a sort(Reverse) ==> ', a)

 

문자열로 이루어진 list를 sort하면?

a = ['kim', 'han', 'lee', 'james', 'vivace', 'moderato']
a.sort()
print(a)

첫글자부터 알파벳 순으로 정렬한다.

 

문자열 + 숫자 등 여러가지가 섞여있을 때는?

a = ['eng', 132, 'kor', '안녕', 'hello', '!@#$', -1200.123]
a.sort()
print(a)

안된다

아스키 코드값으로 비교할 줄 알았는데 애초에 되지를 않는다.