파이썬/자료구조와 알고리즘
리스트
sck07013
2024. 7. 30. 14:33
리스토 조작 함수
myList = [30, 10, 20]
print("현재 리스트: %s" % myList)
#맨뒤에 항목 추가
myList.append(40)
print("append(40) 후의 리스트: %s" % myList)
#맨뒤 항목 꺼내기
print("pop()으로 추출한 값: %s" % myList.pop())
print("pop()후의 리스트: %s" % myList)
#항목 정렬
myList.sort()
print("sort()후의 리스트: %s" % myList)
#항목 역순 정렬
myList.reverse()
print("reverse()후의 리스트: %s" % myList)
#지정값 위치 반환
print("20값의 위치: %d" % myList.index(20))
#지정한 위치 값 삽입
myList.insert(2, 222)
print("insert(2,222)후의 리스트: %s" % myList)
#지정한 값 제거
myList.remove(222)
print("remove(222)후의 리스트: %s" % myList)
#리스트 추가
myList.extend([77, 88, 77])
print("extend(77, 88, 77)후의 리스트: %s" % myList)
#지정한 값 개수 세기
print("77값의 개수: %s" % myList.count(77))
현재 리스트: [30, 10, 20]
append(40) 후의 리스트: [30, 10, 20, 40]
pop()으로 추출한 값: 40
pop()후의 리스트: [30, 10, 20]
sort()후의 리스트: [10, 20, 30]
reverse()후의 리스트: [30, 20, 10]
20값의 위치: 1
insert(2,222)후의 리스트: [30, 20, 222, 10]
remove(222)후의 리스트: [30, 20, 10]
extend(77, 88, 77)후의 리스트: [30, 20, 10, 77, 88, 77]
77값의 개수: 2
for 문을 활용한 리스트 생성
list1 = []
list2 = []
value = 1
for i in range(0, 3) :
for k in range(0, 4) :
list1.append(value)
value += 1
list2.append(list1)
list1 = []
for i in range(0, 3) :
for k in range(0, 4) :
print("%3d" % list2[i][k], end = " ")
print(" ")
1 2 3 4
5 6 7 8
9 10 11 12
셀프스터디
list1 = []
list2 = []
value = 12
for i in range(0, 4) :
for k in range(0, 3) :
list1.append(value)
value -= 1
list2.append(list1)
list1 = []
for i in range(0, 4) :
for k in range(0, 3) :
print("%3d" % list2[i][k], end = " ")
print(" ")
12 11 10
9 8 7
6 5 4
3 2 1
컴프리헨션
일반적인 리스트 생성하기
numlist = []
for num in range(1, 6):
numlist.append(num)
print(numlist)
[1, 2, 3, 4, 5]
컴프리헨션을 사용한 결과
numlist = [num for num in range(1, 6)]
print(numlist)
[1, 2, 3, 4, 5]
다음과 같이 컴프리핸션은 한행만으로도 리스트를 생성할 수 있다.
2차원 리스트를 컴프리핸션 통해 만들기
list1 = [[0 for _ in range(4)] for _ in range(3)]
print(list1)
[[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
딕셔너리
딕셔너리는 키(key)와 값(value)의 쌍으로 이루어져있다.
딕셔너리변수 = {키1 : 값1, 키2 : 값2, 키3 : 값3, ...}
딕셔너리 생성
student = {'학번' : 2000, '이름' : '홍길동', '학과' : '컴퓨터학과'}
print(student)
{'학번': 2000, '이름': '홍길동', '학과': '컴퓨터학과'}
딕셔너리에 쌍 추가
student = {'학번' : 2000, '이름' : '홍길동', '학과' : '컴퓨터학과'}
student['연락처'] = '010-1111-2222'
print(student)
{'학번': 2000, '이름': '홍길동', '학과': '컴퓨터학과', '연락처': '010-1111-2222'}
딕셔너리 쌍 삭제
student = {'학번' : 2000, '이름' : '홍길동', '학과' : '컴퓨터학과'}
student['연락처'] = '010-1111-2222'
print(student)
{'학번': 2000, '이름': '홍길동'}
딕셔너리의 키로 값에 접근하기
student = {'학번' : 2000, '이름' : '홍길동', '학과' : '컴퓨터학과'}
print(student['학번'])
print(student['이름'])
print(student['학과'])
2000
홍길동
컴퓨터학과
딕셔너리이름.get(키) 함수 사용
student = {'학번' : 2000, '이름' : '홍길동', '학과' : '컴퓨터학과'}
print(student.get('학번'))
2000
딕셔너리의 모든 키 반환
student = {'학번' : 2000, '이름' : '홍길동', '학과' : '컴퓨터학과'}
print(student.keys())
dict_keys(['학번', '이름', '학과'])
딕셔너리 모든 키 반환
student = {'학번' : 2000, '이름' : '홍길동', '학과' : '컴퓨터학과'}
print(list(student.keys()))
['학번', '이름', '학과']
모든 값 반환
student = {'학번' : 2000, '이름' : '홍길동', '학과' : '컴퓨터학과'}
print(student.values())
dict_values([2000, '홍길동', '컴퓨터학과'])
딕셔너리이름.items()
student = {'학번' : 2000, '이름' : '홍길동', '학과' : '컴퓨터학과'}
print(student.items())
dict_items([('학번', 2000), ('이름', '홍길동'), ('학과', '컴퓨터학과')])
세트
키만 모아놓은 딕셔너리의 특수형태
myset = {1, 2, 2, 3, 3, 3, 4}
print(myset)
{1, 2, 3, 4}
문자열 검색
함수 | 용도 |
cout('찾을 문자열') | '찾을 문자열'이 몇개 들어있는지 개수를 센다 |
find('찾을 문자열') | '찾을 문자열'이 왼쪽 끝에서 몇번째에 위치하는지 찾는다 |
rfind('찾을 문자열') | '찾을 문자열'이 오른쪽 끝에서 몇번째에 위치하는지 찾는다 |
index('찾을 문자열') | '찾을 문자열'이 왼쪽 끝에서 몇번째에 위치하는지 찾는다 |
rindex('찾을 문자열') | '찾을 문자열'이 오른쪽 끝에서 몇번째에 위치하는지 찾는다 |
문자열 분리
ss = 'Python을 열심히 공부 중'
print(ss.split()) #문자열을 공백이나 다른 문자로 분리하여 리스트를 반환
ss = '하나:둘:셋'
print(ss.split(':'))
ss = '하나\n둘\n셋'
print(ss.splitlines()) #함수를 행 단위로 분리시켜준다
ss = '%'
print(ss.join('파이썬'))#구분자를 먼저 ss에 준비한 후 사용한다
['Python을', '열심히', '공부', '중']
['하나', '둘', '셋']
['하나', '둘', '셋']
파%이%썬