본문 바로가기
프로그래밍 언어/python

24.02.26 정올 문자열

by 피스타0204 2024. 3. 1.

1.''.join(리스트) , '구분자'.join(리스트)

join 함수는 매개변수로 들어온 리스트에 있는 요소 하나하나를 합쳐서 하나의 문자열로 바꾸어 반환하는 함수입니다.

.join(리스트)를 이용하면 매개변수로 들어온 ['a','b','c'] 이런 식의 리스트를 'abc'의 문자열로 합쳐서 반환해줍니다. 구분자.join(리스트)를 이용하면 리스트의 각 요소 사이에 구분자를 넣어서 하나의 문자열로 return 합니다.

출처: https://blockdmask.tistory.com/468 [개발자 지망생:티스토리]

 

a= input()
print(' '.join(a))
'''입력
PYTHON
'''
"""출력
P Y T H O N
"""

 

2. 문자열 슬라이싱

리스트에서 배웠던 슬라이싱을 문자열에서도 당연히 사용할 수 있습니다. for문을 사용할 필요없이 슬라이싱 만으로 홀수, 짝수 등 몇배수의 숫자를 이용하는 문제를 쉽게 사용할 수 있습니다.

1) 몇배수 출력

#입력받은 문제에서 홀수번째 문자만 출력하라
a=input()
print(a[::2])
'''입력
ElementarySchool
'''
"""출력
EeetrSho
"""

 

2) 역순으로 출력

역순으로 출력하는 문제도 -1을 사용해 간단하게 구할 수 있습니다.

a= input()
print(a[::-1])
'''입력
Library
'''
"""출력
yrarbiL
"""

 

3) 문자열의 회전

  • a = [1, 2, 3, 4, 5]을 n만큼 왼쪽으로 회전해라
def left_rotate(test_list, n):
  return test_list[n:] + test_list[:n] 


a = [1, 2, 3, 4, 5]
print(left_rotate(a,1)) # [2, 3, 4, 5, 1]
print(left_rotate(a,2)) # [3, 4, 5, 1, 2]
print(left_rotate(a,4)) # [5, 1, 2, 3, 4]
  • a = [1, 2, 3, 4, 5]을 n만큼 오른쪽으로 회전해라
a = [1, 2, 3, 4, 5]

def right_rotate(test_list, n):
  return test_list[-n:] + test_list[:-n]

print(right_rotate(a,1)) # [5, 1, 2, 3, 4]
print(right_rotate(a,2)) # [4, 5, 1, 2, 3]
print(right_rotate(a,4)) # [2, 3, 4, 5, 1]
  • test_list[:len(test_list)-n] 는 test_list[:-n]와 같다.
    • 전체 길이에서 n만큼 뺀 의미가 역슬라이싱인 -n은 같다.

출처 :

 

[python/파이썬] 리스트 요소 회전하는 4가지 방법 - 음수인덱스/문자열슬라이싱/%모듈/deque

안녕하세요! 맨덕입니다. 오늘은 알고리즘 문제를 풀다보면 일차원 리스트를 회전하여 푸는 문제가 많아 일차원리스트를 회전하는 방법 4가지에 대해 정리했습니다. 방법 1. 음수 인덱스를 활용

menduck.tistory.com

#정올 파이썬 문자열 #888
n ,a,b =input().split()
a =int(a)
b =int(b)
for i in range(a,a+b*a,a):
    if i >len(n):
        i = i%len(n)
    print(n[i:]+n[:i])
'''입력
ABCDEFGHIJ 3 5
'''
"""출력
DEFGHIJABC
GHIJABCDEF
JABCDEFGHI
CDEFGHIJAB
FGHIJABCDE
"""

3. 문자열 > < = 비교

앞에 있을 수록 작은 수입니다.

#문자열 아스키 코드(사전순으로) 순으로 가장 작은 단어를 출력하시오.
a,b,c = input().split()
print(min(a,b,c))
'''입력
cat dog cow
'''
"""출력
cat
"""

 

4. A in B 문자열의 포함관계

input으로 저장한 값에는 공백을 제거해주어야 한다는 사실을 잊으면 안됩니다.

a = input()
b= input()
if b in a:
    print("Yes")
else:
     print("No")
'''입력
Alice in wonderland
Alice
'''
"""출력
Yes
"""
a = input().strip()
c= 'Pennsylvania'
print(a in c)
'''입력
sylvan
'''
"""출력
True
"""

 

5. 문자열 내장함수

str = " abcdefgabc "
print("str :", str)

str = str.strip()
print("str.strip() :", str)
print("len(str) :", len(str))

print("str.count('b') :", str.count('b'))
print("str.find('b') :", str.find('b'))
print("str.index('b') :", str.index('b'))

print("str.isupper() :", str.isupper())
print("str.islower() :", str.islower())
print("str.isalpha() :", str.isalpha())
print("str.isdigit() :", str.isdigit())
print("str.isalnum() :", str.isalnum())

str = str.upper()
print("str.upper() :", str)

str = str.lower()
print("str.lower() :", str)

str = str.replace('d','z')
print("str.replace('d','z') :", str)

str = ','.join(str)
print("','.join(str) :", str)

lst = str.split(',')
print("str.split(',') :", lst)
"""출력
str :  abcdefgabc 
str.strip() : abcdefgabc
len(str) : 10
str.count('b') : 2
str.find('b') : 1
str.index('b') : 1
str.isupper() : False
str.islower() : True
str.isalpha() : True
str.isdigit() : False
str.isalnum() : True
str.upper() : ABCDEFGABC
str.lower() : abcdefgabc
str.replace('d','z') : abczefgabc
','.join(str) : a,b,c,z,e,f,g,a,b,c
str.split(',') : ['a', 'b', 'c', 'z', 'e', 'f', 'g', 'a', 'b', 'c']
"""