Python - Working with Lists

jinatra·2021년 7월 13일
0

Working with Lists


Adding by Index: Insert

.insert()

list 내부에 element를 추가하고자 할 때, .insert() 내부에
1) 순서
2) 넣고자하는 element
기입

arsenal_player = ['Leno', 'Tierny', 'Partey', 'Saka']
arsenal_player.insert(2, 'Tavares')

print(arsenal_player)

# Output: ['Leno', 'Tierny', 'Tavares', 'Partey', 'Saka']

Removing by Index: Pop

.pop()

list 내부의 element를 삭제하고자 할 때, .pop() 내부에 삭제하고자 하는 순서 입력
.pop()은 삭제한 요소를 불러낼 수 있으므로, 새로운 변수를 지정하고 출력 가능

arsenal_player = ['Leno', 'Tierny', 'Partey', 'Saka']

arsenal_player.pop(1)

print(arsenal_player)

# Output: ['Leno', 'Partey', 'Saka']

# 1번 element인 'Tierny' 추출
arsenal_player = ['Leno', 'Tierny', 'Partey', 'Saka']

remove_player = arsenal_player.pop()

print(arsenal_player)
print(remove_player)

# Output:['Leno', 'Tierny', 'Partey']
# Output: Saka

# .pop()과 같이 숫자가 없을 경우엔 list의 마지막 element 추출
# 새 변수 remove_player를 통해서 삭제된 element 호출 가능

Consecutive Lists: Range

.range()
list()

.range() 내부 수 입력을 통해 숫자들을 나열시킬 수 있다
하지만, .range()를 통해 print하면 range(n, N)으로 입력이 되므로,
숫자들을 나열하여 출력시키려면 list()를 사용하여야 한다

.range(N) → 0 부터 N-1까지 출력
.range(n, N) → n 부터 N-1까지 출력
.range(n, N, a) → n부터 a를 더한 값이 N 이전까지 출력

test1 = range(6)
test2 = range(1, 7)
test3 = range(1, 12, 3)

print(test1)
print(test2)
print(test3)

print(list(test1))
print(list(test2))
print(test3)

# Output: [0, 1, 2, 3, 4, 5]
# Output: [1, 2, 3, 4, 5, 6]
# Output: [1, 4, 7, 10]
# Output: [0, 1, 2, 3, 4, 5]
# Output: [1, 2, 3, 4, 5, 6]
# Output: [1, 4, 7, 10]

### 원래대로면 첫 두 결과는 range(0, 6), range(1, 7)이 되어야하는데 아톰에선 다르게 나온다..

Length

len()

list 내 element의 개수를 알고자할 때 사용

arsenal_player = ['Leno', 'Tierny', 'Partey', 'Saka']
range_list = range(2, 3000, 10)

arsenal_player_number = len(arsenal_player)
range_list_number = len(range_list)

print(len(arsenal_player))
print(len(range_list))

print(arsenal_player_number)
print(range_list_number)

# Output: 4
# Output: 300
# Output: 4
# Output: 300

Slicing Lists I

list[n:N]

list 내 n번째부터 N 이전까지의 element 들을 추출하고자할 때 사용

arsenal_player = ['Leno', 'Tierny', 'Partey', 'Saka', 'Rowe', 'Pepe']

arsenal_player_fitted = arsenal_player[1:5]
print(arsenal_player_fitted)

# Output: ['Tierny', 'Partey', 'Saka', 'Rowe']

Slicing Lists II

list[:N]
list[-N:]

  • list[:N] → list 내 처음부터 N 이전까지의 element들을 추출하고자할 때 사용
  • list[-N:] → list 내 마지막부터 -N 까지의 element들을 추출하고자할 때 사용
arsenal_player = ['Leno', 'Tierny', 'Partey', 'Saka', 'Rowe', 'Pepe']

arsenal_player_fitted1 = arsenal_player[:4]
arsenal_player_fitted2 = arsenal_player[-3:]

print(arsenal_player_fitted1)
print(arsenal_player_fitted2)

# Output: ['Leno', 'Tierny', 'Partey', 'Saka']
# Output: ['Saka', 'Rowe', 'Pepe']

Counting in a List

.count()

list 내 특정 요소의 갯수를 확인하고자할 때 사용

votes = ["Jake", "Jake", "Laurie", "Laurie", "Laurie", "Jake", "Jake", "Jake",
"Laurie", "Cassie", "Cassie", "Jake", "Jake", "Cassie", "Laurie", "Cassie",
"Jake", "Jake", "Cassie", "Laurie"]

jake_votes = votes.count('Jake')
print(jake_votes)

# Output: 9

Sorting Lists I

A.sort()
A.sort(reverse = True)

A.sort() → list A 내 element를 알파벳순, 또는 크기순으로 나열 (기존 list A 순서 변경)
A.sort(reverse = True) → list A 내 element를 역순으로 나열 (기존 list A 순서 변경)

arsenal_player = ['Leno', 'Tierny', 'Partey', 'Saka', 'Rowe', 'Pepe']
arsenal_player_backnumber = [1, 3, 5, 7, 32, 19]

arsenal_player.sort()
arsenal_player_backnumber.sort(reverse = True)

print(arsenal_player)
print(arsenal_player_backnumber)

# Output: ['Leno', 'Partey', 'Pepe', 'Rowe', 'Saka', 'Tierny']
# Output: [32, 19, 7, 5, 3, 1]

Sorting Lists II

B = sorted(A)

B = sort(A) → list A를 순서대로 정렬하여 새로운 list B 생성 (기존 list A 순서 변경 X)

arsenal_player = ['Leno', 'Tierny', 'Partey', 'Saka', 'Rowe', 'Pepe']
arsenal_player_backnumber = [1, 3, 5, 7, 32, 19]

arsenal_player_sorted = sorted(arsenal_player)
arsenal_player_backnumber_sorted = sorted(arsenal_player_backnumber)

print(arsenal_player)
print(arsenal_player_sorted)

print(arsenal_player_backnumber)
print(arsenal_player_backnumber_sorted)

# Output: ['Leno', 'Tierny', 'Partey', 'Saka', 'Rowe', 'Pepe']
# Output: ['Leno', 'Partey', 'Pepe', 'Rowe', 'Saka', 'Tierny']
# Output: [1, 3, 5, 7, 32, 19]
# Output: [1, 3, 5, 7, 19, 32]




Take Away

.sort()sorted()의 차이

지금은 어느정도 정돈된 듯 하지만 배우면서 헷갈린 부분이라 적어본다.
.sort()의 경우 list를 순서대로 정렬하지만 기존 list의 순서 자체를 변경하지만,
sorted()의 경우는 새로운 variable을 지정함으로써 기존 list의 순서를 변경하지 않는다.


Consecutive Lists: Range 확인

예시에도 적어두었지만, 원래 범위 range()list()로 감싸지 않으면 range()로 출력이 되어야하는데, 아톰에선 range() 자체를 출력해도 list()로 감싼 것 같이 출력이 된다.
코드에는 문제가 없는 듯 한데, 아마 각 프로그램마다 다르게 설정되어 있어서 그런걸까..?

profile
으악

0개의 댓글