由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 问一个python的string split问题
相关主题
(char **)返回值怎么用SWIG包成Python list (of stringsExtrapolation in Python?
python能检查出space是一个还是两个吗?新手求问一C++初级问题
这个有更好的算法吗?istream_iterator问题
Python macro questionhow to read a sentence into a vector of string?
python download pdf请教c++的string vector问题,谢谢! (转载)
c++ iterator 弱问怎样才能用perl等东西知道c macro中的数值
[合集] 问个面试题什么风格是pythonic?
STL map变量的实际memory usage估算问一段C++ iostringstream的代码
相关话题的讨论汇总
话题: split话题: baaaaaac话题: string话题: 字串话题: maxsplit
进入Programming版参与讨论
1 (共1页)
i******r
发帖数: 323
1
重新写一下问题吧:
默认的split,可以把split出来多余的空字串去掉
>>> 'a\n\nb'.split()
['a', 'b']
但是我手工设定了delimiter之后,就会有多余的空字串了
>>> 'a\n\nb'.split('\n')
['a', '', 'b']
>>>
这个咋回事,谁给我解解惑?
r****t
发帖数: 10904
2
In [12]: "a b".split(' ')
Out[12]: ['a', 'b']
我这里是默认的效果,你那个很奇怪。

delimiter

【在 i******r 的大作中提到】
: 重新写一下问题吧:
: 默认的split,可以把split出来多余的空字串去掉
: >>> 'a\n\nb'.split()
: ['a', 'b']
: 但是我手工设定了delimiter之后,就会有多余的空字串了
: >>> 'a\n\nb'.split('\n')
: ['a', '', 'b']
: >>>
: 这个咋回事,谁给我解解惑?

i******r
发帖数: 323
3
不好意思,原来贴空格有问题
重新编辑了一下
见原帖

【在 r****t 的大作中提到】
: In [12]: "a b".split(' ')
: Out[12]: ['a', 'b']
: 我这里是默认的效果,你那个很奇怪。
:
: delimiter

r****t
发帖数: 10904
4
默认的不是 split 的好好的么?
i******r
发帖数: 323
5
这个运行出来的list里面还是很多空字串啊
>>> t = string.maketrans('_',' ')
>>> s = "a______b".translate(t)
>>> s
'a b'
>>> s.split(' ')
['a', '', '', '', '', '', 'b']
i******r
发帖数: 323
6
我不理解默认的split是用什么参数运行的

【在 r****t 的大作中提到】
: 默认的不是 split 的好好的么?
r****t
发帖数: 10904
7
a.split?
Type: builtin_function_or_method
Base Class:
String Form:
Namespace: Interactive
Docstring:
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
r****t
发帖数: 10904
8

can't u just s.split()?

【在 i******r 的大作中提到】
: 这个运行出来的list里面还是很多空字串啊
: >>> t = string.maketrans('_',' ')
: >>> s = "a______b".translate(t)
: >>> s
: 'a b'
: >>> s.split(' ')
: ['a', '', '', '', '', '', 'b']

i******r
发帖数: 323
9
Yes s.split() works perfectly fine
I am just curious why s.split(' ') is different from s.split()

【在 r****t 的大作中提到】
:
: can't u just s.split()?

e*n
发帖数: 1511
10
缺省没有参数调用的,跳过所有的whitespace.
从python源码看上去是用了c里面的 isspace 函数。
你的问题可以作类似处理,就是自己定义一个函数,把所有你要得东西都替换到一个同
样的字符,然后再用split.

【在 i******r 的大作中提到】
: Yes s.split() works perfectly fine
: I am just curious why s.split(' ') is different from s.split()

相关主题
c++ iterator 弱问Extrapolation in Python?
[合集] 问个面试题新手求问一C++初级问题
STL map变量的实际memory usage估算istream_iterator问题
进入Programming版参与讨论
w****i
发帖数: 964
11
that will still generate empty strings

【在 e*n 的大作中提到】
: 缺省没有参数调用的,跳过所有的whitespace.
: 从python源码看上去是用了c里面的 isspace 函数。
: 你的问题可以作类似处理,就是自己定义一个函数,把所有你要得东西都替换到一个同
: 样的字符,然后再用split.

i******r
发帖数: 323
12
I see
thanks
我原来好奇split是怎么区分user是否给出一个参数的
看了doc string知道了
split的默认参数是None
s.split(None)就可以达到同样的效果

【在 e*n 的大作中提到】
: 缺省没有参数调用的,跳过所有的whitespace.
: 从python源码看上去是用了c里面的 isspace 函数。
: 你的问题可以作类似处理,就是自己定义一个函数,把所有你要得东西都替换到一个同
: 样的字符,然后再用split.

i******r
发帖数: 323
13
right
>>> 'baaaaaac'.split('a')
['b', '', '', '', '', '', 'c']
>>> [x for x in 'baaaaaac'.split('a') if x]
['b', 'c']

【在 w****i 的大作中提到】
: that will still generate empty strings
e*n
发帖数: 1511
14
再filter一下不久好了。

【在 w****i 的大作中提到】
: that will still generate empty strings
r****t
发帖数: 10904
15
if x 太含蓄了,我再贴正确办法吧
>>> t = string.maketrans('a',' ')
>>> s = "baaaaaac".translate(t)
>>> s.split()
e*n
发帖数: 1511
16
这个translate老忘,还是在python challenge里面第一次看呢。
他还有一个潜在问题,就是多个模式匹配的时候,如果模式有overlap会有问题。

【在 r****t 的大作中提到】
: if x 太含蓄了,我再贴正确办法吧
: >>> t = string.maketrans('a',' ')
: >>> s = "baaaaaac".translate(t)
: >>> s.split()

1 (共1页)
进入Programming版参与讨论
相关主题
问一段C++ iostringstream的代码python download pdf
球python大牛给指导一下:写python最大的难点是什么?最重要的品质是什么?c++ iterator 弱问
[合集] 请问php里面的split(),请帮忙[合集] 问个面试题
Python: 有一个混合了子list和string的list, 如何判断元素是list还是string?STL map变量的实际memory usage估算
(char **)返回值怎么用SWIG包成Python list (of stringsExtrapolation in Python?
python能检查出space是一个还是两个吗?新手求问一C++初级问题
这个有更好的算法吗?istream_iterator问题
Python macro questionhow to read a sentence into a vector of string?
相关话题的讨论汇总
话题: split话题: baaaaaac话题: string话题: 字串话题: maxsplit