将字符串拆分为两个列表的Pythonic方法

2 投票
1 回答
11560 浏览
提问于 2025-04-16 15:58

我有很多文件,里面有一对对的字符串,格式像这样:

first_string~second_string

第一部分是要修改的内容,第二部分是修改后的内容。

这些字符串是用正则表达式处理的,我用这些字符串对超过一百个频道的电视节目表进行清理和修改。我之前用C#做过这个,现在我想用Python重新做一遍。

假设我有一个文本文件,里面每一行都是像 find_this~change_to_this 这样的字符串。我需要得到两个列表。第一个列表包含所有的查找字符串,第二个列表包含所有的修改字符串。

假设我有120对这样的字符串。现在我把这些对分成两个列表,每个列表都有120个项目。一个列表是查找的,另一个是修改的。这样我就可以通过某个索引,比如57,来获取两个列表中第57个项目,这样我就能得到对应的修改字符串。

我找到了几种方法,但不确定哪种更好。

那么,怎样用Python把这样的字符串集合分成两个列表呢:

first_string~second_string

使用这个输入,把它分成两个列表,第一个列表包含~之前的内容,第二个列表包含~之后的内容。

1 个回答

13
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')

撰写回答