Data Science/Python

[SWEA] 자료구조 리스트, 튜플

에너지_2 2025. 2. 8. 20:27
728x90
반응형

※ 출처: https://swexpertacademy.com/


리스트 list

📒반환

data_list = list(range(10, 60, 10))
print(data_list) #[10, 20, 30, 40, 50]

data = 20
print(data_list.index(data)) #1 -> 인덱스 반환

 

 

📒추가

data_list1, data_list2 =[10, 20, 30], [40, 50]
print(data_list1 + data_list2) #[10, 20, 30, 40, 50] -> 이어붙이기
print(data_list2 * 3) #[40, 50, 40, 50, 40, 50]

# 값 추가
print(data_list1.append(50)) #None -> 반환값이 없음
print(data_list1) #[10, 20, 30, 50]

# index 위치에 값 추가
data_list1.insert(3, 40)
print(data_list1) #[10, 20, 30, 40, 50]

# list 형태로 값 추가
data_list1.extend([60, 70])
print(data_list1) #[10, 20, 30, 40, 50, 60, 70]

# list 항목을 추가
data_list1.append([80,90])
print(data_list1) #[10, 20, 30, 40, 50, 60, 70, [80, 90]]

 

📒변경

data_list = [10, 20, 30, 40]

data_list[2] = 29
print(data_list) #[10, 20, 29, 40]

#범위의 마지막 값은 실제 index 값이 아님
data_list[1:3] = [12, 15]
print(data_list) #[10, 12, 15, 40] #index 1,2 위치 값을 12,15로 변경

#범위를 벗어난 값은 추가됨 -> 리스트 크기 변경
data_list[1:3] = [12, 15, 20] 
print(data_list) #[10, 12, 15, 20, 40]

 

📒제거

data_list = list(range(10, 110, 10))
print(data_list) #[10, 20, 30, 40, 50, 60, 70, 80, 90, 100]


#값 일부 제거
del data_list[5:] #index
print(data_list)  #[10, 20, 30, 40, 50]

data = data_list.pop(0) #index
print(data)      #10
print(data_list) #[20, 30, 40, 50]

data_list.remove(30) #value
print(data_list) #[20, 40, 50]

#값 전체 제거
data_list.clear()
del data_list[:]

 

📒데이터 확인

data_list = [10, 20, 30, 40, 50, 50, 50]

# 리스트 객체 내 데이터 유무
if 50 in data_list:
    print("True")
elif 50 not in data_list:
    print("False")

# 리스트 객체 내 데이터 갯수
print(data_list.count(50)) #3
print(data_list.count(100)) #0

 

📒활용

- list data 사용

data_list = list(range(0, 11, 2))
print(data_list) #[0, 2, 4, 6, 8, 10]

for data in data_list:
    print(data, end=" ") #0 2 4 6 8 10 

print() #개행

# 리스트를 enumeration 객체로 변환. index와 value 반환 가능
for idx, val in enumerate(data_list):
    print(idx, val)
#
0 0
1 2
2 4
3 6
4 8
5 10

 

- 내포 List comprehension

:파이썬에서는 for문과 if문을 한 라인에 작성하여 코드를 직관적으로 만들고 실행속도를 높혀주는 기법

data_list = list(range(1, 5))

data_list2 = []
for data in data_list:
    if data % 2 == 0:
        data_list2.append(data)

# List comprehension
data_list3 = [data for data in data_list if data % 2 == 0]

print(data_list2 == data_list3) #True


# [for 중첩]
data_list4 = []
for x in data_list:
    if x % 2 == 1:
        for y in data_list:
            if y % 2 == 0:
                data_list4.append(x * y)

# List comprehension
data_list5 = [x * y for x in data_list if x % 2 == 1
                    for y in data_list if y % 2 == 0]

print(data_list4 == data_list5) #True
str = "HelLo-!"
data_list6 = [c.lower() for c in str]
print(data_list6) #['h', 'e', 'l', 'l', 'o', '-', '!']

 

 

튜플 tuple

- 리스트 list 와 다른 점: 튜플 tuple은 값을 지정하고 변경할 수 없음

- 리스트와 사용 함수가 유사함

data_tuple = tuple(range(1, 6))
print(data_tuple) #(1, 2, 3, 4, 5)

data_tuple2 = tuple(range(0, 11, 2))

for data in data_tuple2:
    print(data, end = " ") #0 2 4 6 8 10 

print()

for idx, value in enumerate(data_tuple2):
    print(idx,value)
    
    
#List comprehension
data_list3 = tuple(data for data in data_tuple if data % 2 == 0)

 

 

반응형
300x250

 

728x90
반응형