본문 바로가기
코딩 모음

파이썬 기초 다져보자 05/07 (파이썬 문자열, 파이썬 리스트, 파이썬 딕셔너리(사전))

by 가유 2021. 12. 11.
728x90
반응형

## 파이썬 문자열

## 파이썬 리스트

## 파이썬 딕셔너리

 

## 파이썬 문자열

파이썬 문자열에서 인덱싱을 통해 특정위치릐 문자를 확인 가능

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']

 

 

 

반응형

댓글