파이썬(python)

5. 컬렉션 타입-리스트

인공지능파이썬 2024. 9. 24. 06:48
1. 컬렉션 타입
* 여러개의 데이터 항목을 하나의 단위로 관리 할수 있게 해주는 데이터 구조를 의미합니다. 
* 이것은 여러개의 데이터를 하나의 변수에 저장하고, 관리 할수 있게 해줍니다. 
* 파이썬에는 리스트, 튜플, 세트, 딕셔너리 등이 기본적인 컬렉션 타입에 속합니다.

2. 리스트
* 여러 값들을 하나의 변수에 저장하고 관리할 수 있게 해주는 순차적인 자료구조 입니다.

#1)
li1 = [1, 3, 5, 7, 9]
print(li1)
print(li1[1])
print(type(li1))
-->
[1, 3, 5, 7, 9]
3
<class 'list'>


#2) 
li2 = list ([1, 3, 5, 7, 9])
print(li2)
print(type(li2))
-->
[1, 3, 5, 7, 9]
<class 'list'>


#3) 
li3 = [' 김사과 ', ' 반하나 ', ' 오렌지 ', ' 이메론 ']
print(li3)
-->
[' 김사과 ', ' 반하나 ', ' 오렌지 ', ' 이메론 ']


#4) 
li4 = [1, 50.5, '김사과', True]
print(li4)
print(type(li4))
print(li4[0])
print(type(li4[0])) # 각 요소 타입은 다르다.
print(li4[0])
print(li4[1])
print(li4[-1])
-->
[1, 50.5, '김사과', True]
<class 'list'>
1
<class 'int'>
1
50.5
True


#5) 
li2 = [1, 2, ' 파이썬 ', [' 김사과 ', ' 오렌지 ' ]]
print(li2)
print(type(li2))
print(li2[1])
print(type(li2[1]))
print(li2[3])
print(type(li2[3]))
print(li2[3][1])
print(type(li2[3][1]))
-->
[1, 2, ' 파이썬 ', [' 김사과 ', ' 오렌지 ']]
<class 'list'>
2
<class 'int'>
[' 김사과 ', ' 오렌지 ']
<class 'list'>
 오렌지 
<class 'str'>


#6) 
li3 = [1, 2, 3, [' 김사과 ', '오렌지', '반하나', ['🍟', '🍔', '👻', '🌭']]]
print(li3[-1][-1][-2])
print(li3)
print(li3[2])
print(li3[-1])
print(li3[-1][-2])
print(li3[-1][-1][-2])
-->
👻
[1, 2, 3, [' 김사과 ', '오렌지', '반하나', ['🍟', '🍔', '👻', '🌭']]]
3
[' 김사과 ', '오렌지', '반하나', ['🍟', '🍔', '👻', '🌭']]
반하나
👻


#7) 
li1 = [1, 3, 5, 7, 9]
print(li1)
print(li1[0:3])
-->
[1, 3, 5, 7, 9]
[1, 3, 5]

#8) 
li2 = li1
print(li2)
-->
[1, 3, 5, 7, 9]


#9) 
li2[0] = 100
print(li2)
print(li1)
-->
[100, 3, 5, 7, 9]
[100, 3, 5, 7, 9]


#10) 
li3 = [1, 2, 3, [ '김사과 ' , ' 오렌지 ' , ' 반하나 ' , ['🍟', '🍔', '👻','🌭']]]
print(li3[2:3])
print(li3[3][:2])
-->
[3]
['김사과 ', ' 오렌지 ']


#11) 
li4 = [10, 20, 30, 40, 50]
#슬라이싱을 이용하여 요소를 추가한 경우 리스트에 데이터만 포함
li4[1:2] = ['🍟', '🍔', '👻','🌭']
print(li4)
-->
[10, '🍟', '🍔', '👻', '🌭', 30, 40, 50]


#12) 
li4 = [10, 20, 30, 40, 50]
li4[1] =  ['🍟', '🍔', '👻','🌭'] 
#인덱싱을 이용하여 요소를 추가한 경우 리스트 안에 리스트를 만들고 포함
print(li4)
-->
[10, ['🍟', '🍔', '👻', '🌭'], 30, 40, 50]


#13)
li4 = [10, 20, 30, 40, 50]
print(li4[1:3])
-->
[20, 30]


#14)
li4[1:3] = []
print(li4)  #빈 리스트를 슬라이싱을 통해 저장하면 해당요소가 삭제됨
-->
[10, 40, 50]


#15)
li4 =  [10, 20, 30, 40, 50]
print(li4)
-->
[10, 20, 30, 40, 50]


#16)
del li4[1]
print(li4)
-->
[10, 30, 40, 50]


#17)
li5 = [10, 20, 30]
li6 = [40, 50, 60]
print(li5 + li6)
print(li6 + li5)
-->
[10, 20, 30, 40, 50, 60]
[40, 50, 60, 10, 20, 30]


#18)
li5 = [10, 20, 30]
li5 = li5 + [40, 50, 60]
print(li5)
-->
[10, 20, 30, 40, 50, 60]


#19)
li6 = [10, 20, 30]
li6 += [40, 50, 60]  #li6 = li6 + [40, 50, 60]
print(li6)
-->
[10, 20, 30, 40, 50, 60]


#20)
li6 = [10, 20, 30]
print(li6 * 3)
-->
[10, 20, 30, 10, 20, 30, 10, 20, 30]


3. 리스트의 메서드
#len() : 객체의 길이를 변화

1. 컬렉션 타입
* 여러개의 데이터 항목을 하나의 단위로 관리 할수 있게 해주는 데이터 구조를 의미합니다. 
* 이것은 여러개의 데이터를 하나의 변수에 저장하고, 관리 할 수 있게 해줍니다. 
* 파이썬에는 리스트, 튜플, 세트, 딕셔너리 등이 기본적인 컬렉션 타입에 속합니다.


2. 리스트
여러 값들을 하나의 변수에 저장하고 관리할 수 있게 해주는 순차적인 자료구조 입니다.


1)
li1 = [1, 3, 5, 7, 9]
print(li1)
print(li1[1])
print(type(li1))
-->
[1, 3, 5, 7, 9]
3
<class 'list'>


2) 
li2 = list ([1, 3, 5, 7, 9])
print(li2)
print(type(li2))
-->
[1, 3, 5, 7, 9]
<class 'list'>


3) 
li3 = [' 김사과 ', ' 반하나 ', ' 오렌지 ', ' 이메론 ']
print(li3)
-->
[' 김사과 ', ' 반하나 ', ' 오렌지 ', ' 이메론 ']


4)
li4 = [1, 50.5, '김사과', True]
print(li4)
print(type(li4))
print(type(li4[0])) # 각 요소 타입은 다르다.
print(li4[0])
print(li4[1])
print(li4[-1])
-->
[1, 50.5, '김사과', True]
<class 'list'>
<class 'int'>
1
50.5
True

5) 
li2 = [1, 2, ' 파이썬 ', [' 김사과 ', ' 오렌지 ' ]]
print(li2)
print(type(li2))
print(li2[1])
print(type(li2[1]))
print(li2[3])
print(type(li2[3]))
print(li2[3][1])
print(type(li2[3][1]))
-->
[1, 2, ' 파이썬 ', [' 김사과 ', ' 오렌지 ']]
<class 'list'>
2
<class 'int'>
[' 김사과 ', ' 오렌지 ']
<class 'list'>
 오렌지 
<class 'str'>


6) 
li3 = [1, 2, 3, [' 김사과 ', '오렌지', '반하나', ['🍟', '🍔', '👻', '🌭']]]
print(li3)
print(li3[2])
print(li3[-1])
print(li3[-1][-2])
print(li3[-1][-1][-2])
-->
[1, 2, 3, [' 김사과 ', '오렌지', '반하나', ['🍟', '🍔', '👻', '🌭']]]
3
[' 김사과 ', '오렌지', '반하나', ['🍟', '🍔', '👻', '🌭']]
반하나
👻


7) 
li1 = [1, 3, 5, 7, 9]
print(li1)
print(li1[0:3])
-->
[1, 3, 5, 7, 9]
[1, 3, 5]


8) 
li2 = li1
print(li2)
-->
[1, 3, 5, 7, 9]


9) 
li2[0] = 100
print(li2)
print(li1)
-->
[100, 3, 5, 7, 9]
[100, 3, 5, 7, 9]


10) 
li3 = [1, 2, 3, [ '김사과 ' , ' 오렌지 ' , ' 반하나 ' , ['🍟', '🍔', '👻','🌭']]]
print(li3[2:3])
print(li3[3][:2])
-->
[3]
['김사과 ', ' 오렌지 ']


11) 
li4 = [10, 20, 30, 40, 50]
#슬라이싱을 이용하여 요소를 추가한 경우 리스트에 데이터만 포함
li4[1:2] = ['🍟', '🍔', '👻','🌭']
print(li4)
-->
[10, '🍟', '🍔', '👻', '🌭', 30, 40, 50]


12)
#인덱싱을 이용하여 요소를 추가한 경우 리스트 안에 리스트를 만들고 포함
li4 = [10, 20, 30, 40, 50]
li4[1] = ['🍟', '🍔', '👻','🌭']
print(li4)
-->
[10, ['🍟', '🍔', '👻', '🌭'], 30, 40, 50]


13) 
li4 = [10, 20, 30, 40, 50]
print(li4[1:3])
-->
[20, 30]


14)
li4[1:3] = []
print(li4) #빈 리스트를 슬라이싱을 통해 저장하면 해당요소가 삭제됨
-->
[10, 40, 50]


15)
li4 = [10, 20, 30, 40, 50]
print(li4[1:2])
print(li4[1])
li4[1] = [ ]
print(li4)
-->
[20]
20
[10, [], 30, 40, 50]


16) 
li4 = [10, 20, 30, 40, 50]
print(li4)
del li4[1]
print(li4)
-->
[10, 20, 30, 40, 50]
[10, 30, 40, 50]


17) 
li5 = [10, 20, 30]
li6 = [40, 50, 60]
print(li5 + li6)
print(li6 + li5)
-->
[10, 20, 30, 40, 50, 60]
[40, 50, 60, 10, 20, 30]


18) 
li5 = [10, 20, 30]
li6 = li5 + [40, 50, 60]
print(li6)
-->
[10, 20, 30, 40, 50, 60]


19) 
li6 = [10, 20, 30]
li6 += [40, 50, 60] #li6 = li6 + [40, 50, 60]
[10, 20, 30, 40, 50, 60]

20)
li6 = [10, 20, 30]
print(li6 * 3)
-->
[10, 20, 30, 10, 20, 30, 10, 20, 30]

 

3. 리스트의 메서드
#len() : 객체의 길이를 봔환하는 파이썬의 기본 내장 함수

1) 
li6 = [10, 20, 30]
print(len(li6))
-->
3

2)
#append() : 리스트 요소의 끝에 새로운 요소를 추가
li6 = [10, 20, 30]
li6.append(100)
print(li6)
li6.append([200, 300])
print(li6)
-->
[10, 20, 30, 100]
[10, 20, 30, 100, [200, 300]]


3) 
#extend() : 리스트 요소의 끝에 새로운 여러 요소를 추가
li6.extend([100,200,300])
print(li6)
-->
[10, 20, 30, 100, [200, 300], 100, 200, 300]


4)
#pop() : 리스트 마지막 요소를 삭제하고 삭제된 요소를 반환
li6 = [10, 20, 30]
temp = li6.pop()
print(li6)
print(temp)
-->
[10, 20]
30


5)
#index() : 리스트에서 특정 요소의 값 인덱스를 반환
li6 = [10, 20, 30]
print(li6.index(30))
-->
2


6)
#reverse() : 리스트의 요소들의 순서를 반대로 설정
li7 = [100, 50, 70, 60, 20]
li7.reverse()
print(li7)
-->
[20, 60, 70, 50, 100]


7)
#슬라이싱을 사용하여 리스트의 요소들의 순서를 반대로 설정하는 방법
li7 = [100, 50, 70, 60, 20]
print(li7[:]) #[0~5]
print(li7[0:5]) #step의 생략
print(li7[0:5:1]) #step의 기본값
print(li7[0:5:2]) #step을 2로 설정
-->
[100, 50, 70, 60, 20]
[100, 50, 70, 60, 20]
[100, 50, 70, 60, 20]
[100, 70, 20]


8)
li7 = [100, 50, 70, 60, 20]
print(li7[::-1])
#step이 -1일 경우 start의 기본값은 -1, stop의 기본값은 0으로 설정
print(li7[1::-1])
--> [50, 100]
print(li7[:0:-1])
--> [20, 60, 70, 50] 


8)
#sort() :리스트의 요소를 오름차순으로 정렬
#sort() :리스트의 요소를 오름차순으로 정렬
li7 = [100, 50, 70, 60, 20] 
li7.sort()
print(li7)
-->
[20, 50, 60, 70, 100]


9)
#sorted(reverse=True) : 리스트의 요소를 내림차순으로 정렬
li7.sort(reverse=True)
print(li7)
-->
[100, 70, 60, 50, 20]


10)
li8 = ['Apple', 'apple', 'orange', 'banana', 'melon']
li8.sort()
print(li8)
--> 
['Apple', 'apple', 'banana', 'melon', 'orange']


11)
li9 = ['김사과', '오렌지', '반하나', '이메론', '배애리']
li9.sort()
print(li9)


12)
#sorted() : 모든 요소를 정렬한 후 반환해 주는 함수
li7 = [100, 50, 70, 60, 20] 
result = sorted(li7)
print(li7)
print(result)
-->
[100, 50, 70, 60, 20]
[20, 50, 60, 70, 100]


13)
li9 = [10, 20, 30, 50, 20, 40, 30, 20] 
#count() : 리스트에서 특정 요소의 갯수를 반환
print(li9.count(20))
print(li9.count(100))
-->
3
0

 

728x90
LIST

'파이썬(python)' 카테고리의 다른 글

7. 컬렉션 타입 세트  (2) 2024.09.25
6. 컬렉션 타입-튜플  (0) 2024.09.25
4. 문자열 다루기  (2) 2024.09.24
3. 파이썬의 변수  (0) 2024.09.24
2. Python의 Print 함수  (0) 2024.09.22