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을', '열심히', '공부', '중']
['하나', '둘', '셋']
['하나', '둘', '셋']
파%이%썬