>>> import string
>>> s = "one,two,three"
>>> print string.split(s, ",")
['one', 'two', 'three']
>>> print s.split(",")
['one', 'two', 'three']
Π Π²Π΅ΡΡΠΈΠΈ Python 3.0 ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΡΠ΅ΡΠ΅Π· ΠΌΠ΅ΡΠΎΠ΄Ρ, Π±ΠΎΠ»Π΅Π΅ Π½Π΅ Π±ΡΠ΄ΡΡ Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°ΡΡΡΡ Π² ΠΌΠΎΠ΄ΡΠ»Π΅ string.
Π Python 2.4 ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ: ΠΊΠ»Π°ΡΡ Template. ΠΡΠΈΠΌΠ΅Ρ:
>>> import string
>>> tpl = string.Template("$a + $b = ${c}")
>>> a = 2
>>> b = 3
>>> c = a + b
>>> print tpl.substitute(vars())
2 + 3 = 5
>>> del c # ΡΠ΄Π°Π»ΡΠ΅ΡΡΡ ΠΈΠΌΡ c
>>> print tpl.safe_substitute(vars())
2 + 3 = $c
>>> print tpl.substitute(vars(), c=a+b)
2 + 3 = 5
>>> print tpl.substitute(vars())
Traceback (most recent call last):
File "/home/rnd/tmp/Pythonβ2.4b2/Lib/string.py", line 172, in substitute
return self.pattern.sub(convert, self.template)
File "/home/rnd/tmp/Pythonβ2.4b2/Lib/string.py", line 162, in convert
val = mapping[named]
KeyError: 'c'
ΠΠ±ΡΠ΅ΠΊΡβΡΠ°Π±Π»ΠΎΠ½ ΠΈΠΌΠ΅Π΅Ρ Π΄Π²Π° ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΌΠ΅ΡΠΎΠ΄Π°: substitute() ΠΈ safe_substitute(). ΠΠ½Π°ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π² ΡΠ°Π±Π»ΠΎΠ½ Π±Π΅ΡΡΡΡΡ ΠΈΠ· ΡΠ»ΠΎΠ²Π°ΡΡ (vars() ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ»ΠΎΠ²Π°ΡΡ ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ) ΠΈΠ»ΠΈ ΠΈΠ· ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΡ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ². ΠΡΠ»ΠΈ Π΅ΡΡΡ Π½Π΅ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΠΎΡΡΡ Π² Π·Π°Π΄Π°Π½ΠΈΠΈ ΠΊΠ»ΡΡΠ°, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΈΠ³ΡΡΠ½ΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ ΠΏΡΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΊΠ»ΡΡΠ° Π² ΡΠ°Π±Π»ΠΎΠ½Π΅.
ΠΠ΅ΡΠΎΠ΄Ρ ΡΡΡΠΎΠΊ
Π ΡΠ°Π±Π»ΠΈΡΠ΅ Π½ΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²βΡΡΡΠΎΠΊ ΠΈ unicodeβΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ².
ΠΠ΅ΡΠΎΠ΄ ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ center(w) Π¦Π΅Π½ΡΡΠΈΡΡΠ΅Ρ ΡΡΡΠΎΠΊΡ Π² ΠΏΠΎΠ»Π΅ Π΄Π»ΠΈΠ½Ρ w count(sub) Π§ΠΈΡΠ»ΠΎ Π²Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΠΉ ΡΡΡΠΎΠΊΠΈ sub Π² ΡΡΡΠΎΠΊΠ΅ encode([enc[, errors]]) ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΡΠΎΠΊΡ Π² ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ΅ enc. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ errors ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Β«strictΒ» (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ), Β«ignoreΒ», Β«replaceΒ» ΠΈΠ»ΠΈ Β«xmlcharrefreplaceΒ» endswith(suffix) ΠΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΡΡΡ Π»ΠΈ ΡΡΡΠΎΠΊΠ° Π½Π° suffix expandtabs([tabsize]) ΠΠ°ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΡΠ°Π±ΡΠ»ΡΡΠΈΠΈ Π½Π° ΠΏΡΠΎΠ±Π΅Π»Ρ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ tabsize=8 find(sub [,start [,end]]) ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π½Π°ΠΈΠΌΠ΅Π½ΡΡΠΈΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ, Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Π²Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΡΡΡΠΎΠΊΠΈ sub Π² ΡΡΡΠΎΠΊΡ. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ start ΠΈ end ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°ΡΡ ΠΏΠΎΠΈΡΠΊ ΠΎΠΊΠ½ΠΎΠΌ start:end, Π½ΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅. ΠΡΠ»ΠΈ ΠΏΠΎΠ΄ΡΡΡΠΎΠΊΠ° Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½Π°, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ β1 index(sub[, start[, end]]) ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ find(), Π½ΠΎ Π²ΠΎΠ·Π±ΡΠΆΠ΄Π°Π΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ValueError Π² ΡΠ»ΡΡΠ°Π΅ Π½Π΅ΡΠ΄Π°ΡΠΈ alnum() ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ True, Π΅ΡΠ»ΠΈ ΡΡΡΠΎΠΊΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ Π±ΡΠΊΠ²Ρ ΠΈ ΡΠΈΡΡΡ ΠΈ ΠΈΠΌΠ΅Π΅Ρ Π½Π΅Π½ΡΠ»Π΅Π²ΡΡ Π΄Π»ΠΈΠ½Ρ. ΠΠ½Π°ΡΠ΅ β False isalpha() ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ True, Π΅ΡΠ»ΠΈ ΡΡΡΠΎΠΊΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ Π±ΡΠΊΠ²Ρ ΠΈ Π΄Π»ΠΈΠ½Π° Π½Π΅Π½ΡΠ»Π΅Π²Π°Ρ isdecimal() ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ True, Π΅ΡΠ»ΠΈ ΡΡΡΠΎΠΊΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π΅ΡΡΡΠΈΡΠ½ΡΠ΅ Π·Π½Π°ΠΊΠΈ (ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΡΠΎΠΊ Unicode) ΠΈ Π΄Π»ΠΈΠ½Π° Π½Π΅Π½ΡΠ»Π΅Π²Π°Ρ isdigit() ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ True, Π΅ΡΠ»ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΈΡΡΡ ΠΈ Π΄Π»ΠΈΠ½Π° Π½Π΅Π½ΡΠ»Π΅Π²Π°Ρ islower() ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ True, Π΅ΡΠ»ΠΈ Π²ΡΠ΅ Π±ΡΠΊΠ²Ρ ΡΡΡΠΎΡΠ½ΡΠ΅ (ΠΈ ΠΈΡ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠΉ), ΠΈΠ½Π°ΡΠ΅ β False isnumeric() ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ True, Π΅ΡΠ»ΠΈ Π² ΡΡΡΠΎΠΊΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΈΡΠ»ΠΎΠ²ΡΠ΅ Π·Π½Π°ΠΊΠΈ (ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Unicode) isspace() ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ True, Π΅ΡΠ»ΠΈ ΡΡΡΠΎΠΊΠ° ΡΠΎΡΡΠΎΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ· ΠΏΡΠΎΠ±Π΅Π»ΡΠ½ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ². ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅! ΠΠ»Ρ ΠΏΡΡΡΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ False join(seq) Π‘ΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΡΡΡΠΎΠΊ ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ seq ΡΠ΅ΡΠ΅Π· ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ, Π·Π°Π΄Π°Π½Π½ΡΠΉ ΡΡΡΠΎΠΊΠΎΠΉ lower() ΠΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΡΡΡΠΎΠΊΡ ΠΊ Π½ΠΈΠΆΠ½Π΅ΠΌΡ ΡΠ΅Π³ΠΈΡΡΡΡ Π±ΡΠΊΠ² lstrip() Π£Π΄Π°Π»ΡΠ΅Ρ ΠΏΡΠΎΠ±Π΅Π»ΡΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΡΠ»Π΅Π²Π° replace(old, new[, n]) ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΊΠΎΠΏΠΈΡ ΡΡΡΠΎΠΊΠΈ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΠΎΠ΄ΡΡΡΠΎΠΊΠΈ old Π·Π°ΠΌΠ΅Π½Π΅Π½Ρ new. ΠΡΠ»ΠΈ Π·Π°Π΄Π°Π½ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ n, ΡΠΎ Π·Π°ΠΌΠ΅Π½ΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠ΅ΡΠ²ΡΠ΅ n Π²Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΠΉ rstrip() Π£Π΄Π°Π»ΡΠ΅Ρ ΠΏΡΠΎΠ±Π΅Π»ΡΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΡΠΏΡΠ°Π²Π° split([sep[, n]]) ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ ΠΏΠΎΠ΄ΡΡΡΠΎΠΊ, ΠΏΠΎΠ»ΡΡΠ°ΡΡΠΈΡ ΡΡ ΡΠ°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ΠΌ ΡΡΡΠΎΠΊΠΈ a ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»Π΅ΠΌ sep. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ n ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ°Π·Π±ΠΈΠ΅Π½ΠΈΠΉ (ΡΠ»Π΅Π²Π°) startswith(prefix) ΠΠ°ΡΠΈΠ½Π°Π΅ΡΡΡ Π»ΠΈ ΡΡΡΠΎΠΊΠ° Ρ ΠΏΠΎΠ΄ΡΡΡΠΎΠΊΠΈ prefix strip() Π£Π΄Π°Π»ΡΠ΅Ρ ΠΏΡΠΎΠ±Π΅Π»ΡΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π² Π½Π°ΡΠ°Π»Π΅ ΠΈ Π² ΠΊΠΎΠ½ΡΠ΅ ΡΡΡΠΎΠΊΠΈ translate(table) ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ°Π±Π»ΠΈΡΡ ΠΏΠ΅ΡΠ΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ table, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅ΠΉ ΡΠ»ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π° ΠΊΠΎΠ΄ΠΎΠ² Π² ΠΊΠΎΠ΄Ρ (ΠΈΠ»ΠΈ Π² None, ΡΡΠΎΠ±Ρ ΡΠ΄Π°Π»ΠΈΡΡ ΡΠΈΠΌΠ²ΠΎΠ»). ΠΠ»Ρ UnicodeβΡΡΡΠΎΠΊ translate(table[, dc]) Π’ΠΎ ΠΆΠ΅, Π½ΠΎ Π΄Π»Ρ ΠΎΠ±ΡΡΠ½ΡΡ ΡΡΡΠΎΠΊ. ΠΠΌΠ΅ΡΡΠΎ ΡΠ»ΠΎΠ²Π°ΡΡ β ΡΡΡΠΎΠΊΠ° ΠΏΠ΅ΡΠ΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ Π½Π° 256 ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ string.maketrans(). ΠΠ΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ dc Π·Π°Π΄Π°Π΅Ρ ΡΡΡΠΎΠΊΡ Ρ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π°Π»ΠΈΡΡ upper() ΠΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡ Π±ΡΠΊΠ²Ρ ΡΡΡΠΎΠΊΠΈ Π² Π²Π΅ΡΡ Π½ΠΈΠΉ ΡΠ΅Π³ΠΈΡΡΡΠ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ split() ΠΈ join() Π΄Π»Ρ ΡΠ°Π·Π±ΠΈΠ΅Π½ΠΈΡ ΡΡΡΠΎΠΊΠΈ Π² ΡΠΏΠΈΡΠΎΠΊ (ΠΏΠΎ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»ΡΠΌ) ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ΅ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠ° ΡΡΡΠΎΠΊ Π² ΡΡΡΠΎΠΊΡ
>>> s = "This is an example."
>>> lst = s.split(" ")
>>> print lst
['This', 'is', 'an', 'example.']
>>> s2 = "\n".join(lst)
>>> print s2
This
is
an
example.
ΠΠ»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΎΠ³ΠΎ, ΠΎΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΡΡΡ Π»ΠΈ ΡΡΡΠΎΠΊΠ° Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠ΅ Π±ΡΠΊΠ², ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΌΠ΅ΡΠΎΠ΄ endswith():
>>> filenames = ["file.txt", "image.jpg", "str.txt"
>>> for fn in filenames:
... if fn.lower().endswith(".txt"):
... print fn
...
file.txt
str.txt
ΠΠΎΠΈΡΠΊ Π² ΡΡΡΠΎΠΊΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡΡΠ΅ΡΡΠ²ΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° find(). Π‘Π»Π΅Π΄ΡΡΡΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π²ΡΠ²ΠΎΠ΄ΠΈΡ Π²ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ Π² ΠΌΠΎΠ΄ΡΠ»Π΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ def:
import string
text = open(string.__file__[:-1]).read()
start = 0
while 1:
found = text.find("def ", start)
if found == -1:
break
print text[found:found + 60].split("(")[0]
start = found + 1
ΠΠ°ΠΆΠ½ΡΠΌ Π΄Π»Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ replace(), ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ Π½ΠΈΠΆΠ΅:
>>> a = "ΠΡΠΎ ΡΠ΅ΠΊΡΡ , Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π²ΡΡΡΠ΅ΡΠ°ΡΡΡΡ Π·Π°ΠΏΡΡΡΠ΅ , ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ Π½Π΅ ΡΠ°ΠΊ."
>>> b = a.replace(" ,", ",")
>>> print b
ΠΡΠΎ ΡΠ΅ΠΊΡΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π²ΡΡΡΠ΅ΡΠ°ΡΡΡΡ Π·Π°ΠΏΡΡΡΠ΅, ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ Π½Π΅ ΡΠ°ΠΊ.
Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ ΠΏΠΎ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ
ΠΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΎΡΠ΅Π½Ρ Π΄Π»ΠΈΠ½Π½ΡΠΌΠΈ ΡΡΡΠΎΠΊΠ°ΠΌΠΈ ΠΈΠ»ΠΈ Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΡΡΡΠΎΠΊ, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΠΎβΡΠ°Π·Π½ΠΎΠΌΡ Π²Π»ΠΈΡΡΡ Π½Π° Π±ΡΡΡΡΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΊΠΎΠ½ΠΊΠ°ΡΠ΅Π½Π°ΡΠΈΠΈ Π΄Π»Ρ ΡΠΊΠ»Π΅ΠΈΠ²Π°Π½ΠΈΡ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΡΡΠΎΠΊ Π² ΠΎΠ΄Π½Ρ. ΠΡΡΡΠ΅ Π½Π°ΠΊΠ°ΠΏΠ»ΠΈΠ²Π°ΡΡ ΡΡΡΠΎΠΊΠΈ Π² ΡΠΏΠΈΡΠΊΠ΅, Π° Π·Π°ΡΠ΅ΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ join() ΡΠΎΠ±ΠΈΡΠ°ΡΡ Π² ΠΎΠ΄Π½Ρ ΡΡΡΠΎΠΊΡ:
>>> a = ""
>>> for i in xrange(1000):
... a += str(i) # Π½Π΅ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ!
...
>>> a = "".join([str(i) for i in xrange(1000)]) # Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ
ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Π΅ΡΠ»ΠΈ ΡΡΡΠΎΠΊΠ° Π·Π°ΡΠ΅ΠΌ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ ΡΠ²Π΅ΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌΡ.
ΠΠΎΠ΄ΡΠ»Ρ StringIO
Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΡΡΠ°ΡΡ ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎ ΡΡΡΠΎΠΊΠΎΠΉ ΠΊΠ°ΠΊ Ρ ΡΠ°ΠΉΠ»ΠΎΠΌ. ΠΠΎΠ΄ΡΠ»Ρ StringIO ΠΊΠ°ΠΊ ΡΠ°Π· Π΄Π°Π΅Ρ ΡΠ°ΠΊΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ.
ΠΡΠΊΡΡΡΠΈΠ΅ Β«ΡΠ°ΠΉΠ»Π°Β» ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ StringIO(). ΠΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ Π±Π΅Π· Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° β ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Π½ΠΎΠ²ΡΠΉ Β«ΡΠ°ΠΉΠ»Β», ΠΏΡΠΈ Π·Π°Π΄Π°Π½ΠΈΠΈ ΡΡΡΠΎΠΊΠΈ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° β Β«ΡΠ°ΠΉΠ»Β» ΠΎΡΠΊΡΡΠ²Π°Π΅ΡΡΡ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ:
import StringIO
my_string = Β«1234567890Β»
f1 = StringIO.StringIO()
f2 = StringIO.StringIO(my_string)
ΠΠ°Π»Π΅Π΅ Ρ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ f1 ΠΈ f2 ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΊΠ°ΠΊ Ρ ΠΎΠ±ΡΡΠ½ΡΠΌΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ.
ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° Π² Π²ΠΈΠ΄Π΅ ΡΡΡΠΎΠΊΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ getvalue():
f1.getvalue()
ΠΡΠΎΡΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ (ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° Π½Π° Π΄ΠΈΡΠΊΠ΅ Π² Π²ΠΈΠ΄Π΅ ΡΡΡΠΎΠΊΠΈ) ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°Ρ Unix ΠΈ Windows Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΌΠΎΠ΄ΡΠ»Ρ mmap. ΠΠ΄Π΅ΡΡ ΡΡΠΎΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡΡ Π½Π΅ Π±ΡΠ΄Π΅Ρ.
ΠΠΎΠ΄ΡΠ»Ρ difflib
ΠΠ»Ρ ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Π΄Π²ΡΡ ΡΡΡΠΎΠΊ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½ ΠΌΠΎΠ΄ΡΠ»Ρ difflib.
Π€ΡΠ½ΠΊΡΠΈΡ difflib.get_close_matches() ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠ΄Π΅Π»ΠΈΡΡ n Π±Π»ΠΈΠ·ΠΊΠΈΡ ΡΡΡΠΎΠΊ ΠΊ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅:
get_close_matches(word, possibilities, n=3, cutoff=0.6)
Π³Π΄Π΅
word
Π‘ΡΡΠΎΠΊΠ°, ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΈΡΡΡΡΡ Π±Π»ΠΈΠ·ΠΊΠΈΠ΅ ΡΡΡΠΎΠΊΠΈ.
possibilities
Π‘ΠΏΠΈΡΠΎΠΊ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ².
n
Π’ΡΠ΅Π±ΡΠ΅ΠΌΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π±Π»ΠΈΠΆΠ°ΠΉΡΠΈΡ ΡΡΡΠΎΠΊ.
cutoff
ΠΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ (ΠΈΠ· Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° [0, 1]) Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΡ ΡΡΡΠΎΠΊ. Π‘ΡΡΠΎΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΈ Ρ word Π΄Π°ΡΡ ΠΌΠ΅Π½ΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΈΠ³Π½ΠΎΡΠΈΡΡΡΡΡΡ.