[Python] 리스트(List)

형이·2023년 11월 6일

Python

목록 보기
7/34
post-thumbnail

📝 리스트(List)

🖥️ 1. 리스트(List)란?

  • 여러가지 데이터를 ,(콤마)로 구분하여 []로 감싼 자료구조
  • 자료구조 : 자료를 어떤 구조로 저장하느냐
li1 = [1,3,5,7]
print(li1)

li2 = list([1,3,5,7])
print(li2)

li3 = ['가가가', '나나나', '다다다', '라라라']
print(li3)

# 타입이 다른 데이터를 저장할 수 있다.
li4 = [1, 1.5, '가가가', True]
print(li4)

li5 = [1, 2, '파이썬', ['가가가', '나나나']]
print(li5)

[결과]
[1, 3, 5, 7]
[1, 3, 5, 7]
['가가가', '나나나', '다다다', '라라라']
[1, 1.5, '가가가', True]
[1, 2, '파이썬', ['가가가', '나나나']]

🖥️ 2. 리스트 인덱싱

li1 = [1,3,5,7]
print(li1[0])
print(li1[1])
print(li1[-1])
print(li1[0] + li1[-1])

[결과]
1
3
7
8
li2 = ['가가가', '나나나', '다다다', ['자바', '파이썬', '디비']]
print(li2[0])
print(li2[-1])

print(li2[-1][1])

[결과]
가가가
['자바', '파이썬', '디비']
파이썬
li3 = [1,3,5,['가가가', '나나나', '다다다', ['자바', '파이썬', '디비']]]
# 5 출력
print(li3[2])
print(li3[-2])
print(li3[-1][-2])
print(li3[-1][-1][-1])

[결과]
5
5
다다다
디비

🖥️ 3. 리스트 슬라이싱

li4 = [10,20,30,40,50]
print(li4)
print(type(li4))    # <class 'list'>
print(li4[0:3])     # index값이 0부터 3 전까지 return

li5 = li4
print(li5)
li5[0] = 100
print(li5)
print(li4)

[결과]
[10, 20, 30, 40, 50]
<class 'list'>
[10, 20, 30]
[10, 20, 30, 40, 50]
[100, 20, 30, 40, 50]
[100, 20, 30, 40, 50]
li6 = [10, 20, 30, ['가가가','나나나','다다다'], 40, ['자바','파이썬']]
print(li6[:2])
print(li6[2:])
print(li6[5][:1])

[결과]
[10, 20]
[30, ['가가가', '나나나', '다다다'], 40, ['자바', '파이썬']]
['자바']

🖥️ 4. 리스트 연산자

li7 = [10, 20, 30]
li8 = [40, 50, 60]

print(li7 + li8)    # [10, 20, 30, 40, 50, 60]
print(li8 + li7)    # [40, 50, 60, 10, 20, 30]

print(li7 - li8)    # TypeError: unsupported operand type(s) for -: 'list' and 'list'
print(li7 * li8)    # TypeError: can't multiply sequence by non-int of type 'list'

print(li7 *3)
print(['파이썬'] * 10)

li9 = [10, 20, 30]
li9[1] = '파이썬'
print(li9)
print(li9[0] + li9[2])
print(li9[0] + li9[1])  # TypeError: unsupported operand type(s) for +: 'int' and 'str'

[결과]
[10, 20, 30, 40, 50, 60]
[40, 50, 60, 10, 20, 30]
[10, 20, 30, 10, 20, 30, 10, 20, 30]
['파이썬', '파이썬', '파이썬', '파이썬', '파이썬', '파이썬', '파이썬', '파이썬', '파이썬', '파이썬']
[10, '파이썬', 30]
40

🖥️ 5. 리스트의 수정/삭제

  • 슬라이싱을 이용하여 데이터를 변경한 경우 리스트에 데이터가 포함
  • 인덱싱을 이용하여 데이터를 변경한 경우 리스트 안에 리스트가 포함
li10 = [10, 20, 30]
li10[1] = 100
print(li10)

# 슬라이싱을 이용하여 데이터를 변경한 경우 리스트에 데이터가 포함
li10[1:2] = ['자바', '파이썬', '디비']
print(li10)

# 인덱싱을 이용하여 데이터를 변경한 경우 리스트 안에 리스트가 포함
li10 = [10, 20, 30]
li10[1] = ['자바', '파이썬', '디비']
print(li10)

li10[1:3] = []    # 요소 삭제
print(li10)

del li10[0]
print(li10)

[결과]
[10, 100, 30]
[10, '자바', '파이썬', '디비', 30]
[10, ['자바', '파이썬', '디비'], 30]
[10]
[]

🖥️ 6. 리스트 함수

  • append() : 리스트 마지막 자리에 데이터를 추가
li11 = [10, 20, 30]

li11.append(100)
print(li11)

li11.append([40, 50])
print(li11)

[결과]
[10, 20, 30, 100]
[10, 20, 30, 100, [40, 50]]
  • pop() : 리스트 마지막에 저장된 데이터를 반환하고 해당 데이터는 삭제
li12 = [10, 20, 30, 40, 50]

print(li12)
temp = li12.pop()
print(li12)
print(temp)
li12.pop()
print(li12)

[결과]
[10, 20, 30, 40, 50]
[10, 20, 30, 40]
50
[10, 20, 30]
  • remove() : 매개변수로 전달된 데이터를 제거
  • 같은 데이터가 여러 개 있는 경우 처음 출현하는 데이터를 제거
li13 = [10, 20, 30, 10, 20, 80]

li13.remove(20)
print(li13)

li13.remove(20)
print(li13)

# li13.remove(20)    # ValueError: list.remove(x): x not in list
# print(li13)

[결과]
[10, 30, 10, 20, 80]
[10, 30, 10, 80]
  • insert() : 리스트의 특정 위치에 데이터를 삽입
li14 = [10, 20, 30]

li14.insert(1, 100)   # 1번 인덱스에 데이터 100을 삽입
print(li14)

[결과]
[10, 100, 20, 30]
  • index() : 리스트에 저장된 데이터가 있을 경우 위치를 인덱스로 반환 (없으면 에러)
li15 = [10, 20, 30, 40, 50]

print(li15.index(30))
# print(li15.index(100))    # ValueError: 100 is not in list

[결과]
2
  • reverse() : 리스트에 저장된 데이터를 반대의 순서로 반환
li16 = ['가가가', '나나나', '다다다', '라라라']

li16.reverse()
print(li16)

[결과]
['라라라', '다다다', '나나나', '가가가']
  • sort() : 리스트에 저장된 데이터를 정렬
li17 = [10, 40, 30, 100, 90, 50]

li17.sort()   # 오름차순
print(li17)

# sort(reverse=True) # 내림차순
li17.sort(reverse=True)
print(li17)

li18 = ['Apple', 'apple', 'orange', 'banana', 'melon']
li18.sort()
print(li18)   # 아스키코드 순서

[결과]
[10, 30, 40, 50, 90, 100]
[100, 90, 50, 40, 30, 10]
['Apple', 'apple', 'banana', 'melon', 'orange']
  • count() : 리스트에 포함된 특정 데이터의 개수를 반환
li19 = [10, 20, 30, 50, 20, 40, 30, 20]

print(li19.count(20))
print(li19.count(15))

[결과]
3
0
  • extend() : 리스트를 더함
li20 = [1, 2, 3]

li20.extend([40, 50])
print(li20)

li21 = [1, 2, 3]
li21 = li21 + [40, 50]
print(li21)

[결과]
[1, 2, 3, 40, 50]
[1, 2, 3, 40, 50]

0개의 댓글