为什么python string split()没有拆分

时间:2012-09-02 18:16:20

标签: python http

我有以下python代码。

class MainPage(BaseHandler):

    def post(self, location_id):
        reservations = self.request.get_all('reservations')
        for r in reservations:
            a=str(r)
            logging.info("r: %s " % r)
            logging.info("lenr: %s " % len(r))
            logging.info("a: %s " % a)
            logging.info("lena: %s " % len(a))
            r.split(' ')
            a.split(' ')
            logging.info("split r: %s " % r)
            logging.info("split a: %s " % a)

我得到以下日志打印输出。

INFO     2012-09-02 17:58:51,605 views.py:98] r: court2 13 0 2012 9 2 
INFO     2012-09-02 17:58:51,605 views.py:99] lenr: 20 
INFO     2012-09-02 17:58:51,605 views.py:100] a: court2 13 0 2012 9 2 
INFO     2012-09-02 17:58:51,606 views.py:101] lena: 20 
INFO     2012-09-02 17:58:51,606 views.py:108] split r: court2 13 0 2012 9 2 
INFO     2012-09-02 17:58:51,606 views.py:109] split a: court2 13 0 2012 9 2 

我得到相同的日志打印输出而不是拆分('')我使用split(),顺便说一句。

为什么拆分不将结果拆分为包含6个条目的列表?我想问题是涉及到http请求,因为我在gae交互式控制台中的测试得到了预期的结果。

3 个答案:

答案 0 :(得分:7)

split不会修改字符串。它返回拆分的列表。如果您要使用该列表,则需要将其分配给某些内容,例如r = r.split(' ')

答案 1 :(得分:4)

split不拆分原始字符串,但返回列表

>>> r  = 'court2 13 0 2012 9 2'
>>> r.split(' ')
['court2', '13', '0', '2012', '9', '2']

答案 2 :(得分:4)

更改

r.split(' ')
a.split(' ')

r = r.split(' ')
a = a.split(' ')

说明:split不会将字符串拆分,而是返回拆分版本。

来自documentaion:

split(...)

    S.split([sep [,maxsplit]]) -> list of strings

    Return a list of the words in the string S, using sep as the
    delimiter string.  If maxsplit is given, at most maxsplit
    splits are done. If sep is not specified or is None, any
    whitespace string is a separator and empty strings are removed
    from the result.