English 中文(简体)
如何连续崩溃限制者?
原标题:How to collapse consecutive delimiters?

The default split method in Python treats consecutive spaces as a single delimiter. But if you specify a delimiter string, consecutive delimiters are not collapsed:

>>>  aaa .split( a )
[  ,   ,   ,   ]

如何最直截了当地打破连续的界线? 我知道,我只能从结果清单中删除空洞之处:

>>> result =  aaa .split( a )
>>> result
[  ,   ,   ,   ]
>>> result = [item for item in result if item]

但是,是否有更方便的办法?

最佳回答

You can use re.split with a regular expression as the delimiter, as in:

re.split(pattern, string[, maxsplit=0, flags=0])
问题回答

你们可以做到:

string =  aaa 
result = [s for s in string.split( a ) if s]

Or you could switch to regular expressions:

string =  aaa 
result = re.split( a+ , string)

您可以定期表达:

re.split(pattern, string[, maxsplit=0, flags=0])

页: 1

re.split( a+ ,  aaa )

我认为,你的解决办法是完美的。 此处为:

filter(bool,  aaa .split( a ))

也许不像作为理解清单那样明显。

No, there isn t a more convenient way. Either you write your own split function, or do the removing empty strings.

But your solution seems very clear and pythonic.

虽然这并非你所要求的那样,但你可以通过使用<条码><>><>>>,消除所有非人类的症状:

>>> result
[  ,   ,   ]
>>> set(result)
set([  ])




相关问题
Simple JAVA: Password Verifier problem

I have a simple problem that says: A password for xyz corporation is supposed to be 6 characters long and made up of a combination of letters and digits. Write a program fragment to read in a string ...

Case insensitive comparison of strings in shell script

The == operator is used to compare two strings in shell script. However, I want to compare two strings ignoring case, how can it be done? Is there any standard command for this?

Trying to split by two delimiters and it doesn t work - C

I wrote below code to readin line by line from stdin ex. city=Boston;city=New York;city=Chicago and then split each line by ; delimiter and print each record. Then in yet another loop I try to ...

String initialization with pair of iterators

I m trying to initialize string with iterators and something like this works: ifstream fin("tmp.txt"); istream_iterator<char> in_i(fin), eos; //here eos is 1 over the end string s(in_i, ...

break a string in parts

I have a string "pc1|pc2|pc3|" I want to get each word on different line like: pc1 pc2 pc3 I need to do this in C#... any suggestions??

Quick padding of a string in Delphi

I was trying to speed up a certain routine in an application, and my profiler, AQTime, identified one method in particular as a bottleneck. The method has been with us for years, and is part of a "...

热门标签