목차
파이썬 데이터집합 종류
List 개념
List 요소 접근 / 일부만 선택
List 요소 변경
List 요소 출력 (for...in...구문)
List 요소 존재 체크 (= in / not in 키워드)
List 요소 개수. (= List 길이)
List 요소 추가
List 요소 제거
List 중복 요소 제거
List 복사
List 결합 (= 합치기)
두 List의 동일 색인번호 요소끼리 결합
list() 생성자 ※ 빈 List 생성
List 메서드 종류
List에 자주 사용하는 함수
파이썬 데이터집합 종류
List
순서 O, 색인 O, 변경 O, 추가 O, 제거 O, 중복 O, 대괄호 [] 이용
(예) ['HTML', 'CSS', 'JS']
Tuple
순서 O, 색인 O, 변경 X, 추가 X, 제거 X , 중복 O, 소괄호 () 이용.
단, Tuple → List → Tuple 과정 거쳐 특정 요소 변경 가능.
(예) ('HTML', 'CSS', 'JS')
Set
순서 X, 색인 X, 변경 X , 추가 O, 제거 O, 중복 X , 중괄호 {} 이용.
단, Tuple → List → Tuple 과정 거쳐 변경 가능. 단, 요소 특정 불가.
(예) {'HTML', 'CSS', 'JS'}
Dictionary
순서 X, 색인 O, 변경 O, 추가 O, 제거 O, 중복 X, 중괄호 {} 이용.
{ key : value, .... } 형태 .
(예) {'뼈대':'HTML', '디지인':'CSS', '기능':'JS'}
※ 데이터에 적합한 유형 선택은 (의미・효율성・보안) 측면에서 중요.
List 개념
순서 O, 색인 O , 변경 O, 추가 O, 제거O, 중복 O, 대괄호 [] 이용 자료 모음.
[예제]
code = ["HTML", "CSS", "JS"]
print(code)
결과값: ['HTML', 'CSS', 'JS']
List 요소 접근 / 일부만 선택
※ 색인번호를 지정해 List의 각 Item에 접근 가능.
시작
끝
앞부터 색인
0
1
2
3
List
10
20
30
40
뒤부터 색인
-4
-3
-2
-1
끝
시작
1. 양의 색인번호 : 리스트 맨 앞부터 색인 시작. (※ 맨 앞 : 0)
code = ["HTML", "CSS" , "JS"]
print(code[1] )
결과값: CSS
2. 음의 색인번호 : 리스트의 맨 뒤부터 색인 시작. (※ 맨 뒤 : -1)
code = ["HTML", "CSS", "JS" ]
print(code[-1] )
결과값: JS
3. 색인 범위 : [시작:끝] 형태이며, 끝은 포함 X .
※ 즉, 시작 ~ 끝-1 까지 선택.
code = ["HTML", "CSS", "JS" , "PHP", "SQL"]
print(code[1:3] )
결과값: ['CSS', 'JS']
4. [:끝] 형태 경우, 맨 처음부터 선택됨.
code = ["HTML", "CSS", "JS" , "PHP", "SQL"]
print(code[:3] )
결과값: ['HTML', 'CSS', 'JS']
5. [시작:] 형태 경우, 맨 끝까지 선택됨.
code = ["HTML", "CSS", "JS", "PHP", "SQL" ]
print(code[1:] )
결과값:['CSS', 'JS', 'PHP', 'SQL']
6. [시작음수:끝음수] 경우, 맨 뒤부터 색인 시작.
code = ["HTML", "CSS", "JS", "PHP" , "SQL"]
print(code[-3:-1] )
결과값 : ['JS', 'PHP']
7. [시작:끝:간격] 이용해, 짝수 번째 값만 출력
nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_nums = nums[1::2]
print(even_nums)
결과값: [2, 4, 6, 8, 10]
8. [시작:끝:간격] 이용해, 홀수 번째 값만 출력
nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_nums = nums[0::2]
print(even_nums)
결과값: [1, 3, 5, 7, 9]
9. [시작:끝:간격] 이용해, 역순으로 짝수번째 값만 출력
nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_nums = nums[-1::-2]
print(even_nums)
결과값: [10, 8, 6, 4, 2]
10. [시작:끝:간격] 이용해, 역순으로 홀수번째 값만 출력
nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_nums = nums[-2::-2]
print(even_nums)
결과값: [9, 7, 5, 3, 1]
11. for...in... 반복문 이용해 짝수 번째 값만 출력
※ 「리스트 컴프리헨션」 자세히 보기
(방법1)
nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_nums = [s for s in nums if s % 2 == 0]
print(even_nums)
(방법2)
nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_nums = [s for s in nums if not s % 2]
print(even_nums)
(방법3)
nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_nums = [s for s in nums if not s & 1]
print(even_nums)
결과값: [2, 4, 6, 8, 10]
참고: Innisfree 님 (220520) https://sir.kr/qa/460949
List 요소 변경
1. 특정 색인번호 이용해 특정 item 변경 가능.
code = ["HTML", "CSS", "JS"]
code[1] = "Python"
print(code)
결과값 : ['HTML', 'Python', 'JS']
★ 주의.
색인범위 이용해 아이템 변경/추가 시, 반드시 여러 아이템이 와야 함.
아래 예제들 눈여겨 보시기 바람.
2. 특정 색인범위 이용해 특정 문자열 item 1개 추가 시 현상.
※ 문자열 구성 낱개 문자가 개별 색인으로 들어감.
(∵ 달랑 1개 문자열 item만 와서, 문자열을 쪼개서 에러 방지.)
code = ["HTML", "CSS", "JS"]
code[1:] = "Python"
print(code)
결과값: ['HTML', 'P', 'y', 't', 'h', 'o', 'n']
3. 특정 색인범위 이용해 문자열 item 여러 개 추가 시 현상.
※ 각 문자열이 개별 색인으로 들어감.
code = ["HTML", "CSS", "JS"]
code[1:] = "Python", "PHP"
print(code)
결과값: ['HTML', 'Python', 'PHP']
4. 특정 색인범위 이용해 숫자 item 1개 추가 시 현상.
※ 반복 가능 객체만 가능하다는 에러 발생. (※ 2개 이상 시 가능)
(∵ 달랑 1개 숫자 아이템만 왔는데, 숫자는 더 이상 못 쪼갬.)
code = ["HTML", "CSS", "JS"]
code[1:2] = 100
print(code)
결과값: TypeError: can only assign an iterable
5. 특정 색인범위 이용해 숫자 2개 이상 추가 시 현상. ※ 각 숫자가 개별 색인으로 들어감.
code = ["HTML", "CSS", "JS"]
code[1:2] = 100, 200
print(code)
결과값: ['HTML', 100, 200, 'JS']
List 요소 출력 (for...in...구문)
for...in... 구문 이용.
code = ["HTML", "CSS", "JS"]
for x in code:
print(x)
결과값:
HTML
CSS
JS
List 요소 존재 체크 (= in / not in 키워드)
[존재 체크] in 키워드 활용.
code = ["HTML", "CSS", "JS"]
if "CSS" in code:
print("있음.")
결과값: 있음.
[비존재 체크] not in 키워드 사용.
code = ["HTML", "CSS", "JS"]
if "Python" not in code:
print("없음.")
결과값: 없음.
List 요소 개수. (= List 길이)
len() 함수 이용.
code = ["HTML", "CSS", "JS"]
print(len(code) )
결과값: 3
List 요소 추가
1. append() 메서드 - 리스트 맨 뒤에 Item 추가. 주의: 한 번에 1개씩만 추가 가능.
즉, append("PHP", "SQL") 처럼, 2개 이상 시 에러 발생.
code = ["HTML", "CSS", "JS"]
code.append("PHP")
print(code)
결과값: ['HTML', 'CSS', 'JS', 'PHP']
PS. List 끝에 한번에 여러 요소 추가
방법1. List 결합 이용.
※ 아래 쪽에 나옴.
방법2. 색인 범위 이용.
※ List 요소 개수를 시작 색인으로 설정하고, 끝색인은 비워둠.
code = ["HTML", "CSS", "JS"]
code[3:] = "PHP","SQL"
print(code)
결과값: ['HTML', 'CSS', 'JS', 'PHP', 'SQL']
2. insert() 메서드 : 리스트의 특정 색인 위치에 아이템 추가.
주의: 한 번에 1개씩만 삽입 가능.
즉, code.insert(1, "PHP", "SQL") 처럼 2개 이상 시 에러 발생.
code = ["HTML", "CSS", "JS"]
code.insert(1, "PHP")
print(code)
결과값: ['HTML', 'PHP', 'CSS', 'JS']
PS. List 중간에 한번에 여러 요소 삽입.
※ list .reverse () 메서드로 순서 뒤집은 후, for 반복문 이용.
code = ["HTML", "CSS", "JS"]
add = ["PHP", "SQL"]
add.reverse ()
for x in add:
code.insert(1, x)
print(code)
결과값: ['HTML', 'PHP', 'SQL', 'CSS', 'JS']
List 요소 제거
1. remove() 메서드 - 아이템 지정해 제거.
구문: list .remove ( item )
code = ["HTML", "CSS", "JS"]
code.remove("JS")
print(code)
반환값: ['HTML', 'CSS']
2. pop() 메서드 - 특정 색인 위치의 Item 제거.
구문: list .pop (index )
※ index는 선택사항. 없는 경우 맨 마지막 item 제거.
(예1) - 색인번호 없는 경우.
code = ["HTML", "CSS", "JS"]
code.pop()
print(code) # ['HTML', 'CSS']
(예2) - 색인번호 있는 경우
code = ["HTML", "CSS", "JS"]
code.pop(1)
print(code) # ['HTML', 'JS']
3. del 키워드 - 특정 Item 삭제하거나 List 자체를 삭제.
・Item 삭제 구문 : del list [index ]
・List 삭제 구문 : del list
(예1) 특정 Item 삭제
code = ["HTML", "CSS", "JS"]
del code[1]
print(code) #['HTML', 'JS']
(예2) List 자체 삭제
code = ["HTML", "CSS", "JS"]
del code
print(code) # 에러 발생. (∵ 출력할 List 존재 X)
4. clear() 메서드 - List의 Item 모두 삭제. (List 자체는 존재.)
code = ["HTML", "CSS", "JS"]
code.clear ()
print(code)
결과값: []
List 중복 요소 제거
dict.fromkeys() 함수로 dictionary 만든 후,
다시 list() 함수로 List 만들면 됨.
https://homzzang.com/b/py-301
List 복사
주의: list1 = list2 형식으로는 복사가 안 됨.
∵ list1은 list2에 대한 참조일 뿐이며, list2가 변하면 list1도 변함.
1. copy() 메서드로 복사.
code = ["HTML", "CSS", "JS"]
hz = code.copy ()
print(hz)
결과값: ['HTML', 'CSS', 'JS']
2. list() 함수로 복사.
code = ["HTML", "CSS", "JS"]
hz = list (code)
print(hz)
결과값: ['HTML', 'CSS', 'JS']
List 결합 (= 합치기)
1. + 키워드 사용해 결합.
code1 = ["HTML", "CSS", "JS"]
code2 = ["PHP", "SQL"]
hz = code1 + code2
print(hz)
결과값: ['HTML', 'CSS', 'JS', 'PHP', 'SQL']
2. for...in...반복문과 append() 메서드 사용해 결합.
code1 = ["HTML", "CSS", "JS"]
code2 = ["PHP", "SQL"]
for x in code2:
code1.append (x)
print(code1)
결과값: ['HTML', 'CSS', 'JS', 'PHP', 'SQL']
3. extend() 메서드로 결합.
※ extend() 용도 : 특정 List의 Item을 다른 List에 추가.
code1 = ["HTML", "CSS", "JS"]
code2 = ["PHP", "SQL"]
code1.extend (code2)
print(code1)
결과값: ['HTML', 'CSS', 'JS', 'PHP', 'SQL']
두 List의 동일 색인번호 요소끼리 결합
※ a, b 두 리스트의 동일 색인번호 요소끼리 결합해 새 리스트 생성.
a = ["homzzang", "sir", "naver", "daum"]
b = ["com", "kr", "com", "net"]
c = []
for i in range(len(a)):
c.insert(i, a[i] + "." + b[i])
print(c)
결과값:
['homzzang.com', 'sir.kr', 'naver.com', 'daum.net']
list() 생성자 ※ 빈 List 생성
※ list() 함수 사용해 List 생성 가능.
※ 주의: 이중 소괄호 형태여야 함.
code = list(( "HTML", "CSS", "JS"))
print(code)
반환값: ['HTML', 'CSS', 'JS']
[빈 List 생성]
방법1. 대괄호인 [] 이용.
(예) code = []
방법2. list() 함수 이용.
(예) code = list()
PS. print(code) # []
List 메서드 종류
append()
List 끝에 요소 추가.
clear()
List에서 모든 요소 제거.
copy()
List 복사본 반환.
count()
지정 값에 해당하는 요소 개수 반환.
extend()
현재 목록의 끝에 List (또는, 반복 가능 객체)의 요소를 추가.
index()
지정 값을 가진 첫 번째 요소의 인덱스를 반환.
insert()
지정 위치에 요소 추가.
pop()
지정된 위치에서 요소를 제거.
remove()
지정 값을 가진 요소 제거.
reverse()
List 순서 뒤집기. (=역순).
sort()
List 순서 정렬.
List에 자주 사용하는 함수
len() : 요소 개수
max() : 최대값
min() : 최소값
sum() : 합계. (= 합산)
sorted() : 정렬. (오름차순 / 내림차순)
reversed() : 역순. (= 순서 뒤집기)
주소 복사
랜덤 이동
최신댓글