[알고리즘]리스트

hyihyi·2023년 6월 20일
0

1. sum

내부에 숫자(정수, 실수)로만 이루어진 iterable한 자료형(리스트나 튜플 처럼 인덱스 순환 접근이 가능한 자료형)을 인자로 받음
리스트 안의 숫자를 다 더할 수 있다.

score = [[80, 70, 80], [90, 50], [40, 70], [50, 80]]

a = [sum(i) for i in score]
print(a)

b = sorted([sum(i) for i in score])
print(b)
[230, 140, 110, 130]
[110, 130, 140, 230]

2. index

A = [14, 3, 6, 2, 10]
A_sum = sorted(A, reverse=True)
print(A_sum)
print([A.index(i) for i in A_sum]) # A_sum이 A에서 몇번째인지
print([A_sum.index(i) for i in A]) # A이 A_sum에서 몇번째인지
[14, 10, 6, 3, 2]
[0, 4, 2, 1, 3]
[0, 3, 2, 4, 1]

A라는 2차원 리스트가 있고 A를 오름차순 정렬한 뒤 원래 리스트에서 몇 번째인지 출력.

A = [[1,10,3], [4,5], [6,7]]
A_sum = []
A_sum = sorted([sum(i) for i in A], reverse=True)
print("A_sum :", A_sum)
print("오름차순 인덱스 :", [A_sum.index(sum(i))+1 for i in A])
A_sum : [14, 13, 9]
오름차순 인덱스 : [1, 3, 2]

3. 슬라이싱

리스트 뒤집기

num_list = [1, 2, 3, 4, 5]
print(num_list[::-1])
print(num_list[1:3])

num_list.reverse()
print(num_list)
[5, 4, 3, 2, 1]
[2, 3]
[5, 4, 3, 2, 1]

4. map(function, iterable)

첫 번째 매개변수로는 함수가 오고
두 번째 매개변수로는 반복 가능한 자료형(리스트, 튜플 등)이 옵니다.

map 함수의 반환 값은 map객체 이기 때문에 해당 자료형을 list 혹은 tuple로 형 변환시켜주어야 합니다.

# len함수 사용
strlist = ["We", "are", "the", "world!"]
answer = map(len, strlist)
print(answer)
answer = list(map(len, strlist))
print(answer)
<map object at 0x000001A93FE82FA0>
[2, 3, 3, 6]

리스트에 값을 하나씩 더해서 새로운 리스트를 만드는 작업 : 반복문이랑 map함수 비교

1. for 반복문 이용

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

result1 = []
for val in myList:
    result1.append(val + 1)

print(f'result1 : {result1}')
result1 : [2, 3, 4, 5, 6]

2. map 함수 이용

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

def add_one(n):
    return n + 1


result2 = list(map(add_one, myList))  # map반환을 list 로 변환
print(f'result2 : {result2}')
result2 : [2, 3, 4, 5, 6]
profile
내가 이해하기 쉽게 쓰는 블로그

0개의 댓글