티스토리 뷰

PYTHON

[python basic] 문자열과 리스트

하이하이2222 2023. 9. 24. 21:37

두 자료형은 기본적으로 인덱싱이 가능하다.

따라서 슬라이싱과 for문에서 사용 가능하다.


print(alphabets_string[::-1])
-> 알파벳 문자열이 역으로 출력된다
JHIGFEDCBA

거꾸로 해도 우영우 코드(팰린드롬)


def is_palindrome(word):
    for left in range(len(word) // 2):
        # 한 쌍이라도 일치하지 않으면 바로 False를 리턴하고 함수를 끝냄
        right = len(word) - left - 1
        if word[left] != word[right]:
            return False

    # for문에서 나왔다면 모든 쌍이 일치
    return True


출처 : 코드잇

또한 리스트와 문자열 모두 덧셈 연산, 길이를 재는 len 함수를 사용할 수 있다.

(리스트의 덧셈연산)
list1 =[1,2]
list2=[3,4]
list3 = list1 + list2

그러나!!!

리스트는 인덱스의 값을 수정할 수 있지만 문자열은 인덱스의 값을 수정할 수 없다

하지만!!
문자열을 수정하고 싶다면 방법이 3가지가 있다.

1. 문자열을 리스트로 변환후 인덱스의 값을 가지고 리스트값을 수정해준다.

1) 기본적인 방법
number = “1234234“
num_list = []
for i in range (len(number))
num_list.append(number[i])

2) 문자열을 한번에 리스트로 바꾸는 방법

number = “1234234“
num_list = list(number)

3)  리스트 변환 후 바꾸고 싶은 인덱스의 값들을 바꿔주면 된다.
예를 들어 끝 4자리를 *로 바꾸고 싶다면

for i in range(len(number)-4, len(number)) :
       num_list[i] =“*”

4) 그 후에 리스트를 문자열로 복구한다.
str =“”
for i in range(len(num_list)) :
   str +=num_list[i]

2. join() 이라는 메소드를 사용한다

join() 메소드는 str.join(list) 형태로 사용한다.
여기서 str은 리스트 요소들을 결합할 때 사용되는 구분자이고,
(구분자는 문자열이여야함)
list는 각 요소가 문자열인 리스트를 의미한다.

따라서 str을 list로 바꾼 후

number = “1234234“
num_list = list(number)

1) 마지막 네자리를 *로 대체

for i in range(len(number)-4, len(number)) :
       num_list[i] =“*”

2) 리스트를 빈 문자열에 붙여주면 마지막 네자리가 *인 string을 얻을 수 있다.

‘’.join(num_list)

3. 가장 쉽고, 간단한 문자열 슬라이싱 사용하여 끝의 4자리 변환

number = “1234234“
number[:-4] +”****”




'PYTHON' 카테고리의 다른 글

[python basic] standard library (표준 라이브러리)  (0) 2023.11.16
[python basic] module과 import  (1) 2023.11.16
[python basic] aliasing  (0) 2023.09.14
[python basic] dictionary  (0) 2023.09.14
[python basic] for문 요약  (0) 2023.09.05
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함