使用Python将字符串拆分为列表

时间:2017-10-03 23:48:49

标签: python string list split

我有这个字符串:

string = '26.10-8-00 - Fabricação de componentes eletrônicos | 46.51-6-01 - Comércio atacadista de equipamentos de informática | 95.11-8-00 - Reparação e manutenção de computadores e de equipamentos periféricos'

我想创建一个包含这些代码的列表。它可能看起来像这样:

mylist = ['26.10-8-00', '46.51-6-01', '95.11-8-00']

4 个答案:

答案 0 :(得分:1)

我将字符串拆分为|以获取列表,然后将每个值拆分为-并仅提取其日期部分:

result = [x.split(' - ')[0] for x in s.split(' | ')]

答案 1 :(得分:1)

您可以使用正则表达式:

import re
string = '26.10-8-00 - Fabricação de componentes eletrônicos | 46.51-6-01 - Comércio atacadista de equipamentos de informática | 95.11-8-00 - Reparação e manutenção de computadores e de equipamentos periféricos'
new_string = [i for i in re.split("\s-\s|(?<=\|)\s(?=\d)", string) if re.findall("^\d+\.\d+-\d+-\d+", i)]

输出:

['26.10-8-00', '46.51-6-01', '95.11-8-00']

答案 2 :(得分:1)

采用更简单的方法,但完成工作。

string = '26.10-8-00 - Fabricação de componentes eletrônicos | 46.51-6-01 - Comércio atacadista de equipamentos de informática | 95.11-8-00 - Reparação e manutenção de computadores e de equipamentos periféricos'
mylist = []
for x in string.split(" | "):
  mylist.append(x.split(" - ")[0])
print(mylist)

输出

['26.10-8-00', '46.51-6-01', '95.11-8-00']

答案 3 :(得分:1)

使用re.findall

import re
string = '26.10-8-00 - Fabricação de componentes eletrônicos | 46.51-6-01 - Comércio atacadista de equipamentos de informática | 95.11-8-00 - Reparação e manutenção de computadores e de equipamentos periféricos'
output = re.findall(r'\d+\.\d+-\d+-\d+', string)
# ['26.10-8-00', '46.51-6-01', '95.11-8-00']