## 파이썬 문자열
## 파이썬 리스트
## 파이썬 딕셔너리
## 파이썬 문자열
파이썬 문자열에서 인덱싱을 통해 특정위치릐 문자를 확인 가능
str = '테스트 입니다.' > str[-2]
인덱싱과 슬라이싱을 통해 문자혹은 특정문자열을 확인 가능
- 시작 인덱스: 범위의 시작을 지정, 생략할 경우 자료의 처음 부터 슬라이싱
- 끝 인덱스: 범위의 끝을 지정, 생략할 경우 자료의 끝 까지 슬라이싱
- 스텝: 스텝은 자료를 취하는 간격을 뜻하며 생략할 경우 1로 지정
>
문자열은 + 연산자를 통해 2개 이상의 문자열을 합칠 수 있다.
>
* 연산자를 이용하면 주어진 문자를 반복표기
> 키워드 in
파이썬 키워드 in을 사용하면 문자열에 특정 문자, 또는 문자열이 있는지 없는지 확인할 수 있다.
특정 문자가 존재할 경우에 True를 리턴하고, 없을 경우에는 False를 리턴
ex)
print('T' in 'Test')
결과값 : True
> len()
len()함수를 사용하면 문자열의 길이를 구할 수 있다. len()은 변수 또는 문자열, 리스트 등 시퀀스 자료를 인자로 한다.
> isalpha()
문자열에는 문자, 숫자, 공백, 특수기호 등이 들어갈 수 있다.
파이썬이 제공하는 isalpha() 메소드를 사용하면 특정 문자열이 한글이나 알파벳으로만 구성되어 있는지 확인할 수 있다.
ex)
teststr = '테스트'
res = teststr.isalpha()
> isdigit()
문자열은 따옴표 또는 쌍따옴표 처리된 문자, 숫자, 기호들로 구성되어 있다.
파이썬이 제공하는 isdigit() 메소드를 사용하면 특정 문자열이 숫자로만 구성되어있는지 확인 가능
*** 문자열의 데이터를 확인하는 것이기 때문에 변수가 숫자이면 안되고 문자열이여야 한다.
ex) teststr = 812 (X) > teststr = '812' 이렇게 선언된 변수에서 teststr.isdigit()로 확인 가능
> isalnum()
isalnum() 메소드를 사용하면 문자열을 구성하는 요소가
모두 숫자 또는 알파벳, 한글 등 언어 문자인지 확인하고
True 또는 False를 리턴!! *** 띄어쓰기가 있을 경우 False를 리턴
> upper(), lower()
upper()는 문자열에 있는 모든 알파벳을 대문자로 변환하여 리턴
lower()는 문자열에 있는 모든 알파벳을 소문자로 변환하여 리턴
ex)
teststr = 'I am a Boy'
teststr.upper()
> lstrip(), rstrip(), strip()
lstrip()는 문자열의 왼쪽 공백을 모두 제거한 새로운 문자열을 리턴
rstrip()는 문자열의 오른쪽 공백을 모두 제거한 새로운 문자열을 리턴
strip()는 문자열의 양쪽 공백을 모두 제거한 새로운 문자열을 리턴
> int()
파일이나 사용자로부터 입력받은 숫자는 문자열로 처리된다.
컴퓨터는 파일에서 숫자 999를 읽으면 문자열 999로 읽게 된다.
*** 문자열을 이용하여 수학 연산을 수행할 수 없으므로 수학적으로 사용하기 위해서는 수치형 자료로 변환해야 한다!!!!
int()를 사용하면 문자열로 된 숫자를 정수형으로, float()를 사용하면 문자열로 된 숫자를 실수형으로 변환하여 리턴
int()는 정수 형식으로 된 문자열만 정수형 자료로 변환하며 실수 또는 알파벳/한글/기호 등의 문자열에 사용할 경우 오류가 발생
> str()
파이썬 내장 함수 str()를 사용하면 수치형 자료를 문자열로 변환
str() 자료는 숫자를 인자로 받아와 문자열로 리턴
print()를 사용할 때 문자열과 수치형 자료가 혼합된 값을 출력할 수 없는데, str()을 사용하면 이 문제를 해결할 수 있다.
ex) teststr = str(num)
> count()
count() 함수는 문자열 내에서 인자로 받은 문자열이 몇번 나오는지 쉽게 구할 수 있다.
해당 문자열이 포함된 횟수를 정수 값으로 리턴
# 문자열 'Testdata에 'e'의 개수를 확인합니다.
str = 'Testdata'
count = str.count('e')
print(count)
> find()
find()는 문자열에서 특정 문자열이 위치하는 인덱스를 얻을 수 있다.
find()에 인자로 입력한 문자열이 최초로 나타나는 인덱스를 리턴
특정 인덱스 이후에 나타나는 문자를 찾고 싶을 경우,
문자를 찾기 시작할 시작점의 인덱스를 두 번째 인자로 추가
두 번째 인자가 없는 경우, 제일 왼쪽부터 찾기 시작
> split()
구분자로 구분되어 있는 문자열을 분리하는 것을 파싱(parsing)
split()를 사용하면 쉽게 문자열을 파싱할 수 있다.
split() 함수는 구분자를 인자로 받아 구분자를 기준으로 문자열을 분리
문자열.split(구분자)과 같이 사용
분리된 문자열들은 리스트의 멤버로 저장
> join()
split()과 반대로 join() 메소드는 여러 개의 문자열을
하나의 문자열로 결합할 때 사용
join()은 인자로 리스트를 받아옵니다.
test_list = ['abc', 'is', 'def']
test = '//'.join(test_list)
print(test)결과값 : abc//is//def
> replace()
replace() 메소드는 문자열에서 특정 문자나 문자열을 다른 문자(열)로 변경할 때 사용
replace()는 두 개의 문자열을 인자로 받는다.
첫번째 인자는 변경하고 싶은 문자열,
두번째 인자는 첫번째 인자를 대체할 문자열
> sorted()
sorted()는 인자로 입력받은 문자열을 알파벳 오름차순으로 정렬하고 결괏값 리스트 형태로 리턴
대문자는 우선순위를 가진다.
내림차순으로 정렬하고 싶을 경우 두번째 인자로 reverse=True를 입력
이 경우, 반대로 소문자가 우선순위를 가진다.
ex) ret = sorted(strdata, reverse=True)
> ord()
ord()는 사람이 알아보는 문자를 컴퓨터가 인식하는 코드값으로 변환
ord()는 인자로 문자 한 개를 받아 이에 해당하는 ASCII 코드를 정수로 반환
ord()의 인자로 숫자 또는 한 개 이상의 문자를 입력할 경우 오류가 발생
ex) chv = ord(ch)
> chr()
chr()는 ord()의 반대 기능을 수행
chr()의 인자로 정수값을 입력하면 이 정수값에 해당하는 문자를 리턴
입력한 코드값에 대한 문자가 존재하지 않을 경우 오류가 발생
> eval()
코드를 작성하다 보면 사용자의 입력값 또는 파일에서 읽은
수식이나 문자열을 그대로 실행해야 할 경우가 있다.
eval()을 사용하면 코드로 실행 가능한 문자열을 인자로 받아 결과값을 리턴!!!
수식으로 입력된 값을 바로 실행하게 한다.!!!!
ex )
testdata = '7*3'
res = eval(testdata)
print(res)
결과값 : 21
## 파이썬 리스트
> range()
파이썬 내장함수 range()를 이용하면 [0, 1, 2, 3]이나 [10, 11, 12, 13]과 같은 순차적인 정수 리스트를 만들 수 있다.
range()의 인자를 설정하여 정수 범위의 시작점과 끝을 정할 수 있다.
시작점이 설정되지 않으면 자동으로 0부터 시작''
리스트의 특정 위치에 있는 멤버값을 취하려면 인덱싱을 이용!!!
인덱스는 0부터 시작
> index()
index()는 리스트에서 멤버의 값을 알고 있을 때 해당 멤버가 최초로 나타나는 위치의 인덱스를 리턴
ex) list_data.index(test)
> 특정 인덱스에 해당하느 멤버를 변경할 수 있다.
> 슬라이싱을 통해 특정 구간의 요소를 추출할 수 있다.
> 리스트 역순
리스트를 구성하는 멤버를 역순으로 만드는 방법에는 두 가지가 있다.
- reverse(): 리스트의 모든 요소의 순서를 거꾸로 만든다.
원본 리스트 자체가 변경된다!!!!!
새로운 변수에 원본 리스트를 저장하고
새로운 변수를 reverse()하면 원본 리스트를 변경하지 않고 역순 리스트를 얻을 수 있다. - [::-1]: 스탭에 -1을 입력하여 리스트를 슬라이싱을 하면
멤버 순서가 역순으로된 새로운 리스트를 만들 수 있다. 원본 리스트가 변경되지 않는다!!!!!
> + 연산자를 통해 여러개의 리스트를 연결할 수 있다.
> * 연산자를 사용하여 반복된 리스트를 연결할 수 있다.
> append()
append()는 인자로 입력된 값을 리스트의 맨 마지막 요소로 추가
append()는 인자를 하나만 받을 수 있다.
> insert()
insert()를 사용하면 리스트의 특정 위치에 새로운 요소를 삽입할 수 있다.
insert()는 두 개의 인자를 받는다.
첫번째 인자는 새로운 요소를 삽입할 위치, 두번째 인자는 새로운 요소
> del
del 키워드와 리스트에서 제거하고 싶은 값의 인덱스를 사용하면 리스트의 특정 위치 또는 구간 요소를 제거할 수 있다.
리스트 자체도 삭제 가능 (메모리에서 아예 삭제)
ex)
del test_list[1]
del 리스트명[시작 인덱스:끝 인덱스]
del list_data[1:7]
del 리스트명
del test_list
> remove()
remove()를 이용하면 리스트에 있는 특정 요소의 값을 이용해 그 요소를 제거할 수 있다.
ex) list_data.remove('test')
> len()
리스트도 len() 함수를 사용해서 리스트를 비롯한 시퀀스 자료형의 크기 또는 길이를 구할 수 있다.
> count()
count()를 사용하면 리스트에 존재하는 특정 요소의 개수를 얻을 수 있다.
count()는 개수를 확인하고자 하는 값을 인자로 받는다.
> 리스트 요소 정렬
- sort(): 리스트에 있는 요소를 정렬
원본 리스트 자체가 변경!!!!
인자로 reverse=True를 입력할 경우 내림차순으로 정렬 - sorted(): 첫번째 인자로 받은 리스트의 요소를 정렬
sort()와 달리 sorted()는 원본 리스트는 그대로 두고 정렬한 결과 리스트를 리턴
두번째 인자로 reverse=True를 입력할 경우 내림차순으로 정렬
> shuffle()
shuffle()을 사용하면 리스트의 요소를 무작위로 섞을 수 있다.
shuffle()을 사용하기 위해서는 먼저 random 모듈에서 shuffle을 import해야 한다.
shuffle()을 사용하면 원본 리스트가 변경된다!!!!!!!
> enumerate()
enumerate()는 시퀀스 자료형을 인자로 받아 각 요소를
인덱스와 함께 쌍으로 추출할 수 있는 enumerate 객체를 리턴
이 객체를 리스트형으로 변환하기 위해서는 list()를 이용
ex)
list(enumerate(리스트명))
ex)
testdata = ['월','화','수','목','금']
for key, value in enumerate(testdata):
print('키는 %d이고, 값은 %s 이다' %(key, value))
결과값
키는 0이고, 값은 월 이다
키는 1이고, 값은 화 이다
키는 2이고, 값은 수 이다
키는 3이고, 값은 목 이다
키는 4이고, 값은 금 이다
> all(), any()
리스트의 모든 요소가 참인지 또는 모든 요소가 거짓인지 판단해야 하는 경우,
파이썬 내장함수 all() 또는 any()를 사용
- all(): 인자로 입력되는 리스트의 모든 요소가 참인 경우 True, 거짓이 하나라도 포함되어 있을 경우 False를 리턴
- any(): 인자로 입력되는 리스트의 모든 요소가 거짓인 경우 False, 참이 하나라도 포함되어 있을 경우 True를 리턴
파이썬에서 거짓은 False 외에도 다음의 값들로도 표현할 수 있습니다:
- 숫자 0
- 빈 문자열 '', ""
- 빈 리스트 []
- 빈 튜플 ()
- 빈 사전 {}
## 파이썬 딕셔너리(사전)
> 사전은 키:값으로 구성된 자료형
> 리스트와 달리 사전은 []가 아닌 {}를 사용하며 인덱스가 아닌 키로 해당 요소의 값을 접근할 수 있다
> del
del 키워드와 사전의 키를 이용하면 사전의 특정 요소를 제거
ex)
del dict[i]는 사전 dict에서 요소 i:val을 제거
> clear()
clear()를 이용하면 사전의 모든 요소를 제거하여 빈 사전 {}으로 만들 수 있다.
> keys()
keys()를 이용하면 사전에서 모든 키를 추출
keys()는 사전의 모든 키를 객체 형태로 출력하기 때문에
리스트의 형태로 변형하고 싶을 경우에는 list()를 사용해야 한다.
ex)
test_dict = {'1':'t1', '2':'t2'}
dt1 = test_dict.keys() #test_dict의 모든 키를 추출하여 변수 dt1에 저장
dt1_list = list(dt1) # dt1에 객체형으로 저장된 test_dict의 모든 키를 리스트형으로 변경해서 dt1_list에 저장
> values()
values()를 이용하면 사전에서 모든 값을 추출할 수 있다.
values()는 사전의 모든 키를 객체 형태로 출력하기 때문에 리스트의 형태로 변형하고 싶을 경우에는 list()를 사용
values() 또한 keys()처럼 사용형태는 같다
ex)
test_dict = {'1':'t1', '2':'t2'}
dt1 = test_dict.values() #test_dict의 모든 값을 추출하여 변수 dt1에 저장
dt1_list = list(dt1)
> items()
items()를 이용하면 사전에서 모든 요소를 추출할 수 있다
items()는 사전의 모든 키를 객체 형태로 출력하기 때문에 리스트의 형태로 변형하고 싶을 경우에는 list()를 사용
ex)
test_dict = {'1':'t1', '2':'t2'}
dt1 = test_dict.items() #test_dict의 모든 요소를 추출하여 변수 dt1에 저장
dt1_list = list(dt1)
print(dt1_list)
결과값 :[('1', 't1'), ('2', 't2')]
> 파이썬 키워드 in
파이썬 키워드 in을 사용하면 사전에서 특정 키가 존재하는지 확인할 수 있다
key in dict는 사전 dict에 key가 키로 있는지 확인하고 있을 경우 True를, 없을 경우 False를 리턴
> 딕셔너리 사전 정렬
sorted()를 사용하면 사전을 인자로 입력받아 정렬
sorted()는 기본적으로 사전의 키를 오름차순으로 정렬한 결과를 리스트로 리턴
reverse=True를 두번째 인자로 입력하면 내림차순으로 정렬한 결과를 받을 수 있다.
ex)
test_dict = {'t1':123, 't2':456, 't3':789}
res = sorted(test_dict)
print(res)
결과값 : ['t1', 't2', 't3']
댓글