본문 바로가기
Python/Python

[Python] list와 tuple

by 기록하는_사람 2022. 9. 14.

list vs tuple

📌 list, tuple

: 여러 자료들을 담을 수 있는 자료형.

  표기법 순서 자료변경
list [ ] O O
tuple ( ) O X

 

💡 tuple 표시할 때 주의할 점

tu = (1)
print(type(tu)) # <class 'int'>

tu = ("abcd")
print(type(tu)) # <class 'str'>

tu = (1,)
print(type(tu)) # <class 'tuple'>

 

list indexing, index

📌 list는 인덱싱이 가능함. 

li = [1, 2, 3, 4, 5]

for i in range(0, len(li)):
    print(f"li[{i}] : {li[i]}")
print()

for i in range(-1, -(len(li)) - 1, -1):
    print(f"li[{i}] : {li[i]}")

# li[0] : 1
# li[1] : 2
# li[2] : 3
# li[3] : 4
# li[4] : 5

# li[-1] : 5
# li[-2] : 4
# li[-3] : 3
# li[-4] : 2
# li[-5] : 1

 

 

💡 index와 indexing

https://codingrecord2209.tistory.com/77

 

[Python] index와 indexing

Indexing(인덱싱) : index(인덱스)를 활용해 자료에 접근하는 것을 말함. 예) list[index], tuple[index] Index(인덱스) : 자료의 순서를 나타내는 것. 0부터 시작. * index(인덱스)가 0부터 시작하는 이유 : 최..

codingrecord2209.tistory.com

 

list 슬라이싱

📌 list는 슬라이싱이 가능함.

 

📌 슬라이싱은 자료를 나누는 것을 말함.

 

📌 자료 [start : stop : step]

: start부터 step만큼 건너뛰며 (stop - 1)까지를 의미하며, start, stop, step 모두 생략이 가능함.

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

print(li[:3]) # [1, 2, 3]
print(li[5:]) # [6, 7, 8, 9]
print(li[::2]) # [1, 3, 5, 7, 9]
print(li[3:7]) # [4, 5, 6, 7]

 

 

💡 슬라이싱

https://codingrecord2209.tistory.com/78

 

[Python] 슬라이싱

슬라이싱 : 자료를 나눌 수 있는 것. 인덱스가 있는 자료형 모두 슬라이싱 가능. - 자료 [start : stop : step] : start 부터 (stop - 1)까지. - start, stop, step 모두 생략 가능. s = '19951004' s[:4] # start..

codingrecord2209.tistory.com

 

list 관련 메서드

📌 list 관련 메서드

list.append( ) 자료 추가
list.insert(index, 자료) 지정한 위치에 자료 추가(맨 뒤에 추가)
del list[index] 지정한 위치의 자료 삭제
list.pop( ) 자료 삭제(default : 맨 뒤)
list.pop(index) 지정한 위치의 자료 삭제
list.count(자료) list 안에 '자료'의 개수 반환
list.index(자료) '자료'의 위치 반환
list.sort( ) 자료 정렬(오름차순)
list.reverse( ) 리스트 뒤집기
list.copy( ) 깊은 복사
list.clear( ) 리스트 초기화

💡 sort( )는 list 안의 자료들이 모두 동일한 자료형일 때만 가능

💡 문자열도 sort( ) 가능

 

list 관련 메서드 - 예시

li = [1, False, "hello", 4.2, 45, "world"]
print(li)

li.append(5.2)              # 자료 추가
print(li)                   # [1, False, "hello", 4.2, 45, "world", 5.2]

li.insert(2, "two")         # 지정한 위치에 자료 추가
print(li)                   # [1, False, 'two', "hello", 4.2, 45, "world", 5.2]

del li[0]                   # 자료 삭제
print(li)                   # [False, 'two', "hello", 4.2, 45, "world", 5.2]

li.pop()                    # 맨 뒤에 위치한 자료 삭제
print(li)                   # [False, 'two', "hello", 4.2, 45, "world"]

li.pop(3)                   # 지정한 자료 제거 및 반환(default는 맨 뒤 자료)
print(li)                   # [False, 'two', "hello", 45, "world"]

print(li.count(False))      # 리스트 내 자료의 개수 반환 # 1

print(li.index("hello"))    # 자료의 인덱스 반환 # 2

li = [45, 234, 12, 65 -23, -21, 8764, -12]
li.sort()                   # 자료 정렬(단, 리스트 내 자료형이 모두 동일한 경우)
print(li)                   # [-21, -12, 12, 42, 45, 234, 8764]

li.reverse()                # 리스트 뒤집기 
print(li)                   # [8764, 234, 45, 42, 12, -12, -21]

a = li.copy()               # 깊은 복사
print(li)                   # [8764, 234, 45, 42, 12, -12, -21]
print(a)                    # [8764, 234, 45, 42, 12, -12, -21]

li.clear()                  # 리스트 초기화
print(li)                   # []

 

새로운 연산으로 새로운 리스트 생성

📌 새로운 연산으로 새로운 리스트 생성

li_a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
li_b = [-1, 0, 1]

li_double = [i * 2 for i in li_a]
print(li_double) # [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]

li_odd = [i for i in li_a if i % 2 != 0]
print(li_odd) # [1, 3, 5, 7, 9]

li_ab = [i * j for i in li_a for j in li_b]
print(li_ab) 
# [-1, 0, 1, -2, 0, 2, -3, 0, 3, -4, 0, 4, -5, 0, 5, -6, 0, 6, -7, 0, 7, -8, 0, 8, -9, 0, 9, -10, 0, 10]

 

 

'Python > Python' 카테고리의 다른 글

[Python] 복합 연산자  (0) 2022.09.14
[Python] 반복문(for문, 중첩) | range 함수  (0) 2022.09.14
[Python] 조건문(if문)  (0) 2022.09.13
[Python] input 함수 | 형변환  (0) 2022.09.07
[Python] 연산자  (0) 2022.09.06

댓글