python/파이썬 기본

3. list & tuple

Abokadoh 2023. 2. 11. 16:47

1. list() 함수

#<in>
# string 타입을 list로 변환
a = 'hello world'
a_list = list(a)
a_list


#<out>
['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd']

list()함수로 str type의 자료를 list로 변환하면 문자열 한 개씩 구분하여 list로 만든다.

이제 tuple type을 변환해보자.

#<in>
a = (1, 2, 3)
a_list = list(a)
a_list


#<out>
[1, 2, 3]

기존에 tuple type의 자료형을 문자, 순서는 그대로 tuple에서 list로 변환해 주는 것을 확인할 수 있다.


2. list slicing

list type의 slicing을 공부해보자.

#<in>
a = [1, 2, 3, 4, 5, 6, 7, 8]
print(a[4:7])
print(a[:7])
print(a[4:])
print(a[::2])


#<out>
[5, 6, 7]
[1, 2, 3, 4, 5, 6, 7]
[5, 6, 7, 8]
[1, 3, 5, 7]
  • a[start: end: increment] → [시작:끝:간격]

3. tuple

  • list와 같이 복수개의 값을 갖는 컬렉션 타입
  • 생성된 후 변경이 불가능

tuple unpacking

  • 'tuple'의 값을 차례대로 변수에 대입한다.
#<in>
a, b, c, d = 100, 200, 300, 400
print(a, b, c, d)


#<out>
100 200 300 400
  • 변수명 앞에 *표시를 하면 여러 개의 값을 갖는 리스트가 된다.
#<in>
a, b, *c = (1, 2, 3, 4, 5)
print(a)
print(b)
print(c)


#<out>
1
2
[3, 4, 5]
  • 사용되지 않거나 필요없는 변수는 언더스코어(_)표시를 한다.
#<in>
a,_ = (1, 2)
print(a)


#<out>
1

 

- list 멤버 함수

  • append()
    • list의 끝에 항목을 추가한다.
# <in>
a = [1, 2, 3, 4, 5]
a.append(10) # a 리스트 끝에 10을 추가
a


# <out>
[1, 2, 3, 4, 5, 10]
#<in>
a = [1, 2, 3, 4, 5]  
b = [6, 7, 8, 9, 10]

a.append(b)  
a


#<out>
[1, 2, 3, 4, 5, [6, 7, 8, 9, 10]]

  • extend()
    • list를 연장 하는 개념
    • 대안으로 +=이 있다.
#<in>
a = [1, 2, 3, 4, 5]  
b = [6, 7, 8, 9, 10]

a.extend(b)  
a


#<out>
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
#<in>
a = [1, 2, 3, 4, 5]  
b = [6, 7, 8, 9, 10]

a += b  
a


#<out>
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

  • insert()
    • list원하는 위치에 추가 가능
    • insert(index, ‘value’)
#<in>
a = [1, 3, 4, 5, 6]
a.insert(1,2)

a


#<out>
[1, 2, 3, 4, 5, 6]

  • remove()
    • 값으로 항목 삭제
#<in>
a = [1, 3, 30, 30, 4, 5]
a.remove(30) # 가장 처음의 항목만을 삭제한다.

a


#<out>
[1, 3, 30, 4, 5]

  • pop()
    • 지우고자 하는 item을 반환 후, 삭제
#<in>
a = [1, 2, 3, 4, 5]
d = a.pop(2)
print(a) # a안에 2를 삭제하고
print(d) # 그 2를 d에 반환


#<out>
[1, 2, 4, 5]
3

  • index()
    • 찾고자 하는 값의 index 반환
#<in>
a = [2, 6, 7, 9, 10]
a.index(9) # a에서 9의 위치(인덱스)를 반환


#<out>
3

  • in 키워드
    • list 내에 해당 value가 존재하는지 확인
    • value in list
    • True, False 중 한가지로 반환
#<in>
a = [1, 2, 3, 4, 5, 10]
b = 10

c = b in a # a 안에 b가 있는가? 에다한 boolean값 반환 
print(c) 


#<out>
True

  • list 정렬
    • sort()list 자체를 내부적으로 정렬
    • sorted()list의 정렬된 복사본을 반환
#<in>
a = [9, 10, 7, 19, 1, 2, 20, 21, 7, 8]
a.sort() # 작은 순서대로 나열
a.sort(reverse = True) # 큰 순서대로 나열

a = [9, 10, 7, 19, 1, 2, 20, 21, 7, 8]
b = sorted(a) # a의 나열된 복사본을 b에 반환
b = sorted(a,reverse = True) # a의 큰 순서대로 나열된 복사본 b에 반환
print(a)
print(b)


#<out>
a = [9, 10, 7, 19, 1, 2, 20, 21, 7, 8]
b = [21, 20, 19, 10, 9, 8, 7, 7, 2, 1]