Hoe tekenreeks naar kleine letters te converteren in Python 2 en 3

  1. Converteer string naar kleine letters in Python 3
  2. Converteer string naar kleine letters in Python 2.7
  3. Gevolgtrekking

Converteer string naar kleine letters in Python 3

str type omdat Python 3.0 standaard Unicode tekens bevat , wat betekent dat elke string zoals "unicode example" , 'unicode example 2' wordt opgeslagen als Unicode.

Beton tegels
Beton tegels

Daarom kan je str.lower() elke tekenreeks naar kleine letters converteren in Python 3.

exampleString = "CaseString"
exampleString.lower()
#Out: 'casestring'

exampleString = "СтрокаСлучая"
exampleString.lower()
#Out: 'строкаслучая'

str.casefold() conversie zonder casus

str.lower() converteert de tekenreeks naar kleine letters, maar converteert het onderscheid tussen hoofdletters en kleine letters niet.

In het ß Duits is bijvoorbeeld gelijk aan het dubbele s - ss en het is ß zelf al in kleine letters, daarom str.lower() wordt het niet geconverteerd.

Maar str.casefold() zal converteren ß naar ss.

>>> 'Straße'.lower()
'straße'
>>> 'Straße'.casefold()
'strasse'

Converteer string naar kleine letters in Python 2.7

str type in Python 2.7 wordt niet opgeslagen als Unicode en Unicode tekenreeksen zijn exemplaren van het unicode type. We moeten onderscheiden of de string een ASCII string of unicode string is wanneer we de string naar kleine letters converteren.

ASCII type

Het is hetzelfde met de methode die wordt gebruikt in Python 3. str.lower() converteert de str naar kleine letters.

exampleString = "CaseStringExample"
exampleString.lower()
#Out: 'casestringexample'

unicode type

Als de tekens in de string van het Unicode type zijn en de string niet expliciet in het Unicode type wordt weergegeven, str.lower() converteert de methode de string helemaal niet naar kleine letters.

exampleString = "СтрокаСлучая"
print exampleString.lower()
#Out: СтрокаСлучая

exampleString.lower() == exampleString
#Out: True

Python maakt bezwaar tegen niet-ASCII-bytes in een string zonder codering omdat de bedoelde codering impliciet is.

Het gebruik van Unicode letterlijke maar niet str

exampleUnicodeString = u"СтрокаСлучая"
exampleUnicode
#u'\u0421\u0442\u0440\u043e\u043a\u0430\u0421\u043b\u0443\u0447\u0430\u044f'
exampleUnicodeString.lower()
#u'\u0441\u0442\u0440\u043e\u043a\u0430\u0441\u043b\u0443\u0447\u0430\u044f'

print exampleUnicodeString.lower()
#Out: строкаслучая

Je kon hier zien dat het eerste teken van de string wordt geconverteerd van \u0421 naar \u0441.

Converteer een str naar unicode

Als de gegeven string de vorm heeft van str , moeten we deze eerst converteren naar Unicode voor kleine letters.

exampleString = "СтрокаСлучая"
print exampleString.decode('utf-8').lower()
#Out: строкаслучая

Gevolgtrekking

lower() methode is de methode om tekenreeks naar kleine letters om te zetten, zowel in Python 2 als 3, maar met een merkbaar verschil.

string in Python 3 is unicode standaard de string, maar string in Python 2 niet. Als de tekenreeks niet expliciet als unicode type wordt weergegeven, bijvoorbeeld niet u vóór de tekenreeks, wordt de tekenreeks van de unicode helemaal niet in kleine letters omgezet.

str.casefold converteert de case-onderscheidingen naar hun caseless matches, maar is alleen beschikbaar in Python 3. Je zou py2casefold in Python 2 kunnen installeren.

Gerelateerde Artikelen - Python String

  • Hoe controleer je of een string leeg is op een pythonische manier
  • Hoe witruimte in een string te verwijderen
  • Hoe tekenreeks naar datetime te converteren