Python/Syntax 2021. 8. 22. 14:49

리스트(List)

  • 리스트는 순서가 있고 변경 가능한 자료의 집합이다.

  • 중복을 허용한다.

  • 대괄호로 묶는다.

  • 문자열처럼 인덱싱과 슬라이싱을 할 수 있다.

    nums = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    print(nums[:])
    print(nums[2:5])
    print(nums[:4])
    print(nums[6:])
    print(nums[1:7:2])
    print(nums[0])
    
    ''' stdout
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    [2, 3, 4]
    [0, 1, 2, 3]
    [6, 7, 8, 9]
    [1, 3, 5]
    0
    '''
  • 기존 값을 삭제하면서 동시에 새로운 값을 삽입할 수 있다.

    nums = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    nums[2:5] = [20, 30, 40]
    print(nums)
    nums[6:8] = [60, 70, 80, 90]
    print(nums)
    
    ''' stdout
    [0, 1, 20, 30, 40, 5, 6, 7, 8, 9]
    [0, 1, 20, 30, 40, 5, 60, 70, 80, 90, 8, 9]
    '''
    nums = [1, 2, 3, 4]
    nums[2:2] = [90, 91, 92] # 새로운 값들을 삽입
    print(nums)
    nums = [1, 2, 3, 4]
    nums[2] = [90, 91, 92] # 지정한 위치의 엘리먼트에 리스트 대체
    print(nums)
    
    ''' stdout
    [1, 2, 90, 91, 92, 3, 4]
    [1, 2, [90, 91, 92], 4]
    '''
  • +, * 기호를 지원한다.

    list1 = [1, 2, 3, 4, 5]
    list2 = [10, 11]
    listadd = list1 + list2
    print(listadd)
    listmulti = list2*3
    print(listmulti)
    
    ''' stdout
    [1, 2, 3, 4, 5, 10, 11]
    [10, 11, 10, 11, 10, 11]
    '''

컴프리핸션

  • 내부의 리스트를 순회하며 각 요소에 대한 수식을 적용하여 최종 요소를 생성한다.

    [수식 for 변수 in 리스트 if 조건]
    nums = [ n*2 for n in range(1, 11)]
    for i in nums:
        print(i, end = ', ')
    
    ''' stdout
    2, 4, 6, 8, 10, 12, 14, 16, 18, 20,
    '''

메서드

메서드 설명
.append(값) 리스트 끝에 값 추가
.insert(위치, 값) 지정한 위치에 값 삽입
.extend(리스트2) 원본 리스트 뒤에 리스트2를 붙인다.
list1 + list2 extend는 원본을 변경하고, 이건 붙여서 새로운 리스트로 리턴한다.
.remove(값) 리스트에서 값을 찾아 첫번째 해당 요소를 제거, 없으면 예외 발생
del(리스트[인덱스]) 지정한 인덱스의 요소 제거
[시작:끝] = [] 지정 범위 요소 제거
.pop() 리스트 끝 요소를 삭제하고 해당 요소를 리턴
.pop(인덱스) 지정한 인덱스의 요소를 삭제하고 해당 요소를 리턴
.index(값) 값을 찾아 해당 인덱스를 리턴, 없으면 예외 발생
.count(값) 값이 리스트에 포함된 횟수 리턴
len(시퀀스) 시퀀스의 길이 리턴
max(시퀀스) 요소 중 최댓값 리턴
min(시퀀스) 요소 중 최솟값 리턴
값 in 시퀀스 값이 시퀀스에 포함되어 있으면 True
값 not in 시퀀스 값이 시퀀스에 포함되지 않으면 True
.sort([reverse=True][key=키에 적용할 함수]) 리스트를 정렬한다. reverse 옵션으로 내림차순 정렬도 가능하다. key에 적용할 함수에서 리턴하는 값을 통해 비교한다.
.reverse() 리스트를 역순으로 재배치
sorted(시퀀스) 지정한 시퀀스를 정렬하여 새로운 리스트로 리턴
score = [88, 95, 70, 100, 99]
score.sort()
print(score)

score.reverse()
print(score)

score = [88, 95, 70, 100, 99]
score.sort(reverse=True)
print(score)

country = ["Korea", "japan", "CHINA", "america"]
country.sort()
print(country)

country.sort(key = str.lower)
print(country)

''' stdout
[70, 88, 95, 99, 100]
[100, 99, 95, 88, 70]
[100, 99, 95, 88, 70]
['CHINA', 'Korea', 'america', 'japan']
['america', 'CHINA', 'japan', 'Korea']
'''

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

파이썬 사전(Dictionary)  (0) 2021.08.22
파이썬 튜플(Tuple)  (0) 2021.08.22
파이썬 함수  (0) 2021.08.22
파이썬 반복문  (0) 2021.08.22
파이썬 조건문  (0) 2021.08.22