Python : 문자를 어떻게 증가시킬 수 있습니까?
Java와 C에서 온 Python을 처음 사용합니다. char를 어떻게 증가시킬 수 있습니까? Java 또는 C에서 chars와 int는 실질적으로 상호 교환이 가능하며 특정 루프에서는 증가 문자를 수행하고 문자별로 배열을 색인화 할 수있는 것이 매우 유용합니다.
파이썬에서 어떻게 할 수 있습니까? 전통적인 for (;;) 루 퍼가없는 것은 충분히 나쁩니다. 전체 전략을 재고하지 않고도 내가 원하는 것을 달성 할 수있는 방법이 있습니까?
도움을 주시면 감사하겠습니다.
Python 2.x에서는 ord
및 chr
함수를 사용하십시오 .
>>> ord('c')
99
>>> ord('c') + 1
100
>>> chr(ord('c') + 1)
'd'
>>>
Python 3.x는 바이트와 유니 코드를 명확하게 구분하므로이를 더욱 체계적이고 흥미롭게 만듭니다. 기본적으로 "문자열"은 유니 코드이므로 위의 방법이 작동합니다 ( ord
유니 코드 문자를 수신하여 chr
생성).
그러나 바이트에 관심이 있다면 (예 : 일부 이진 데이터 스트림 처리) 일이 훨씬 더 간단합니다.
>>> bstr = b'abc'
>>> bstr[0]
97
>>> bytes([97, 98, 99])
b'abc'
>>> bytes([bstr[0] + 1, 98, 99])
b'bbc'
"전통적인 for (;;) 루 퍼가 없을만큼 나쁘다"?? 뭐?
당신은하려고
import string
for c in string.lowercase:
...do something with c...
아니면 또는 사용 string.uppercase
하고 string.letters
있습니까?
파이썬에는 for(;;)
더 나은 방법 이 있기 때문에 그렇지 않습니다 . 또한 필요하지 않기 때문에 문자 수학도 없습니다.
나는 PHP에서 왔는데 ++ 연산자를 사용하여 char (A에서 B, Z에서 AA, AA에서 AB 등)를 늘릴 수 있습니다. 파이썬에서 똑같이하는 간단한 함수를 만들었습니다. 또한 문자 목록을 원하는대로 (소문자, 대문자 등) 변경할 수 있습니다.
# Increment char (a -> b, az -> ba)
def inc_char(text, chlist = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'):
# Unique and sort
chlist = ''.join(sorted(set(str(chlist))))
chlen = len(chlist)
if not chlen:
return ''
text = str(text)
# Replace all chars but chlist
text = re.sub('[^' + chlist + ']', '', text)
if not len(text):
return chlist[0]
# Increment
inc = ''
over = False
for i in range(1, len(text)+1):
lchar = text[-i]
pos = chlist.find(lchar) + 1
if pos < chlen:
inc = chlist[pos] + inc
over = False
break
else:
inc = chlist[0] + inc
over = True
if over:
inc += chlist[0]
result = text[0:-len(inc)] + inc
return result
def doubleChar(str):
result = ''
for char in str:
result += char * 2
return result
print(doubleChar("amar"))
산출:
aammaarr
참고 URL : https://stackoverflow.com/questions/2156892/python-how-can-i-increment-a-char
'IT story' 카테고리의 다른 글
C ++ 사용자 입력 대기 (0) | 2020.08.26 |
---|---|
SASS에서 다른 파일의 클래스에서 상속 할 수 있습니까? (0) | 2020.08.26 |
sudo가 호출하는 Bash 스크립트에서 사용자 식별 (0) | 2020.08.26 |
TypeScript에서 "클래스 선언"과 "인터페이스"의 차이점은 무엇입니까? (0) | 2020.08.26 |
ggplot에 회귀선 추가 (0) | 2020.08.26 |