2011-04-18 372 views
1

我有很多与字符串对文件看起来像:Python的方式来将字符串分割成两个列表

first_string〜second_string

第一部分是要改变什么;第二,要第一部分有什么变化。

这些是正则表达式,我用这些集合运行我的应用程序,将所有修改应用于超过一百个频道的脏电视时间表列表。我之前用C#做过,但现在我正在用Python重新编写它。

让我们想象一下,我有一个文本文件,每个文本文件都有自己的行,看起来像find_this~change_to_this。我需要得到两个名单。首先将包含所有查找字符串,第二个将包含所有更改字符串。

让我们想象一下,我有120个这样的对。现在我将这些对分成两个列表,每个列表大小为120个项目。一个发现,另一个 - 发生变化。现在,我可以通过一些索引来获取这两个字符串,例如57,并且它会从这两个列表中获得第57个项目,所以我为任何查找字符串都获得了正确的更改字符串。我发现了一些变体,但不确定哪一个更好。

什么是分割字符串集合这样的Python的:

first_string~second_string 

使用输入到它拆分成两个列表,其中第一列表包含之前〜,第二个项目 - 之后。

+0

“更好”?更快?便宜?最喜欢Ruby? “更好”是什么意思? “美丽”是主观的。 “一致”与什么?你使用'分区'吗? – 2011-04-18 17:47:17

+2

好的,对于主观要求抱歉。我们称之为pythonic。它现在有什么意义吗? :) – 2011-04-18 17:48:59

+0

不是。你的'first_string〜second_string'例子看起来不完整。此外,你还没有显示你已经使用的代码。这只是“分区”和“分裂”。请包含您的解决方案,以便我们对其进行评论。 – 2011-04-18 17:50:15

回答

10
x = ["c~d", "e~f", "g~h"] 
a, b = zip(*(s.split("~") for s in x)) 
print a 
print b 

打印

('c', 'e', 'g') 
('d', 'f', 'h')