[python] (no subject)

David Necas (Yeti) yeti na physics.muni.cz
Čtvrtek Únor 2 22:15:28 CET 2006


On Thu, Feb 02, 2006 at 09:35:54PM +0100, Petr Nesládek wrote:
> Važení mám dotaz

A což mu takhle dát nějaký subject (předmět)?

> asi je to poměrně kuriozní použití, ale v okrajových podmínkách použití funkce string. split() jsem narazilo na jeden paradox, který nevím, zda je náhodný produkt či omyl v pásmu nikoho
> 
> pokud zavoláte string.split(s),
>  s proměnnou s = ""
> vrátí vám seznam stringu rozděleného whitespaces tj.: [ ]
> 
> 
> pokud zavoláte to pro stejný - prázdný string totéž, ale s nastaveným delimiterem explicitně na
> 
> pokud zavoláte string.split(s,"\") vrátí Vám - k vašemu ůžasu (mému teda rozhodně) nikoliv [ ], jak očekáváte - proč by se nic dělené čímkoliv mělo stát něčím...  ale obdržíte [ '' ] - tj. seznam s jedním prázdým polem - nesetakli jste se někdo s vysvětlením - je to sice za hodně zvláštních podmínek, ale je to nesystematické chování....

split(s[, sep[, maxsplit]])
    ...
    If the second argument sep is present and not None, it
    specifies a string to be used as the word separator. The
    returned list will then have one more item than the
                                 ^^^^^^^^^^^^^^^^^^^^^^
    number of non-overlapping occurrences of the separator
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    in the string.

V případě žádného výskytu to znamená, že výsledek má jeden
prvek. To jest, string.split(sep) se chová zcela konzistentně:

    >>> 'bleble'.split('\\')
    ['bleble']
    >>> ''.split('\\')
    ['']

('bleble' ani '' neobsahuje \, tudíž oba skončí
nerozděleny). Naproti tomu string.split() funguje spíš
stylem DWIM a zavádí výjimku pro prázdný řetezec.

Yeti


--
That's enough.



Další informace o konferenci Python