developer tip

문자열의 첫 번째 문자를 축소하는 방법은 무엇입니까?

optionbox 2020. 12. 15. 19:01
반응형

문자열의 첫 번째 문자를 축소하는 방법은 무엇입니까?


문자열을 대문자로 바꾸는 기능이 있습니다. 문자열의 첫 번째 문자를 소문자로 변경하고 싶습니다.

파이썬에서 어떻게 할 수 있습니까?


빈 문자열을 처리하는 한 줄짜리 None:

func = lambda s: s[:1].lower() + s[1:] if s else ''

>>> func(None)
>>> ''
>>> func('')
>>> ''
>>> func('MARTINEAU')
>>> 'mARTINEAU'

s = "Bobby tables"
s = s[0].lower() + s[1:]

def first_lower(s):
   if len(s) == 0:
      return s
   else:
      return s[0].lower() + s[1:]

print first_lower("HELLO")  # Prints "hELLO"
print first_lower("")       # Doesn't crash  :-)

흥미롭게도,이 답변 중 어느 것도하지 않는다 정확히 반대를 capitalize(). 예를 들어, capitalize('abC')반환 Abc보다는 AbC. 의 반대를 원하면 capitalize()다음과 같은 것이 필요합니다.

def uncapitalize(s):
  if len(s) > 0:
    s = s[0].lower() + s[1:].upper()
  return s

가장 간단한 방법 :

>>> mystring = 'ABCDE'
>>> mystring[0].lower() + mystring[1:]
'aBCDE'
>>> 

최신 정보

빈 문자열 처리를 포함하여 더 완벽한 솔루션은 @RichieHindle의 답변을 참조하십시오 . 그 대답은 처리되지 None않으므로 여기에 내 의견이 있습니다.

>>> def first_lower(s):
   if not s: # Added to handle case where s == None
   return 
   else:
      return s[0].lower() + s[1:]

>>> first_lower(None)
>>> first_lower("HELLO")
'hELLO'
>>> first_lower("")
>>> 

특별한 경우를 처리 할 필요가 없습니다 (그리고 대칭이 더 파이썬 적이라고 생각합니다).

def uncapitalize(s):
    return s[:1].lower() + s[1:].upper()

다음과 같이 작성합니다.

def first_lower(s):
    if s == "":
        return s
    return s[0].lower() + s[1:]

This has the (relative) merit that it will throw an error if you inadvertently pass it something that isn't a string, like None or an empty list.


This duplicate post lead me here.

If you've a list of strings like the one shown below

l = ['SentMessage', 'DeliverySucceeded', 'DeliveryFailed']

Then, to convert the first letter of all items in the list, you can use

l = [x[0].lower() + x[1:] for x in l]

Output

['sentMessage', 'deliverySucceeded', 'deliveryFailed']

ReferenceURL : https://stackoverflow.com/questions/3840843/how-to-downcase-the-first-character-of-a-string

반응형