Python 3.3 dodaje metodę casefold
do typu str, ale w wersji 2.x nic nie mam. Jaki jest najlepszy sposób obejścia tego?Jak przypadek składa łańcuch w Pythonie 2?
Odpowiedz
Sprawdź py2casefold.
>>> from py2casefold import casefold
>>> print casefold(u"tschüß")
tschüss
>>> casefold(u"ΣίσυφοςfiÆ") == casefold(u"ΣΊΣΥΦΟσFIæ") == u"σίσυφοσfiæ"
True
[Nie wydaje się być bardzo dobrze przetestowane] (https://github.com/rwarren/py2casefold/blob/39a14b8971040b8f6015b7fa1a401c19c121175f/tests/test_casefold.py) – jfs
J.F. Sebastian - co byś dodał? Dla odniesienia [here] (https://hg.python.org/cpython/file/d4669f43d05f/Lib/test/test_unicode.py#l568) jest zasięg testu jednostkowego "str.casefold" Pythona 3. – Russ
Sprawdź, czy uda Ci się wyłowić przydatny test z ['regex: test_case_folding()'] (https://bitbucket.org/mrabarnett/mrab-regex/src/cbdb3caaee9ec68fdc2bff7e30902fb1dbdd3fd7/regex_3/Python/test_regex.py? at = default & fileviewer = file-view-default # test_regex.py-571) – jfs
Jeśli PyICU jest już zainstalowany; możesz go użyć do zdefiniowania casefold()
. Korzystanie the same example strings as in @Russ' answer:
>>> import icu
>>> casefold = lambda u: unicode(icu.UnicodeString(u).foldCase())
>>> print casefold(u"tschüß")
tschüss
>>> casefold(u"ΣίσυφοςfiÆ") == casefold(u"ΣΊΣΥΦΟσFIæ") == u"σίσυφοσfiæ"
True
>>> icu.UNICODE_VERSION
'6.3'
>>> import unicodedata
>>> unicodedata.unidata_version
'5.2.0'
- 1. Podziel łańcuch na 2 w Pythonie
- 2. Przerwij łańcuch na listę znaków w Pythonie
- 3. Najdłuższy łańcuch elementów z listy w Pythonie
- 4. Jak przyciąć łańcuch za pomocą str.format w Pythonie?
- 5. Jak mogę sprawdzić, czy łańcuch ma w Pythonie wartość liczbową?
- 6. Co [[]] * 2 robi w pythonie?
- 7. Zdjąć łańcuch między 2 znaków z ciągu tekstowego
- 8. Jak określić najlepszy przypadek i najgorszy przypadek programu (algorytmu)?
- 9. Jaka jest równoważność w Pythonie 3 liter w Pythonie 2?
- 10. Łańcuch szesnastkowy do podpisu int w Pythonie 3.2?
- 11. Wzór strategii w Pythonie, gdy "strategia" składa się z więcej niż jednej funkcji
- 12. Typy wbudowanych podklas w Pythonie 2 i Pythonie 3
- 13. Złapać przerwaną rurę w Pythonie 2 I Pythonie 3
- 14. W JAKICH WARUNKACH CZY SZTUCZA SKŁADA ZASTOSOWANIE?
- 15. Nieoczekiwany przypadek zachowanie w Ruby
- 16. domyślny przypadek w stanie przełącznika
- 17. Maksymalizuj WebDriver (Selenium 2) w Pythonie
- 18. Czy łańcuch znaków jest zgodny() w Selenium Webdriver 2?
- 19. Jak uzyskać prawidłowy przypadek ścieżki?
- 20. Jak obsłużyć przypadek dopasowania w List.First wC#?
- 21. Jak wykonać introspekcję obiektu w Pythonie 2.x?
- 22. Jak mogę otworzyć pliki UTF-16 w Pythonie 2.x?
- 23. Jak zmapować 2 listy z porównaniem w pythonie
- 24. Jak uzyskać aktualny adres URL w Pythonie Selenium Webdriver 2?
- 25. Jak połączyć łańcuch w cmake
- 26. Jak wyciąć łańcuch w środku?
- 27. Jaka jest różnica między "2 * 2" i "2 ** 2" w Pythonie?
- 28. Jak policzyć liczbę słów w tekście (łańcuch)?
- 29. Przypadek pasujący do wzoru, gdy
- 30. Łańcuch wyjątków w języku Python
Czy potrzebujesz do czynienia z ciągów innych niż angielski? – roippi
Tak. Chcę uruchomić algorytm składany w przypadku Unicode. –