2013-05-03 93 views
-1

字符串采用以下格式。分割为python

A1:::x1:::B1.A2:::x2::x3::x4:::B2.A3:::x5::x6::x7:::B3. 

分割后的输出应该

['x1:::B1', 'x2::x3::x4:::B2', 'x5::x6::x7:::B3'] 

注:

  • A,x由:::
  • X1分离,X2 .... XN由::分离
  • x,B被:::分隔
  • B,A是由.
+1

什么你尝试至今伴侣吗?你有什么问题呢?你会发现这里的人(像我)希望你表现出一些努力,而不是要求完成你的功课。 – 2013-05-03 14:04:01

+0

@Puciek:那不是我的意图。但是,我赞赏你的一般建议。 – Srik 2013-05-03 14:35:19

回答

2

像你想先拆就.(删除空的条目)在我看来然后:::划分一次只保留第二个元素separared。在代码中,看起来像这样:

s = 'A1:::x1:::B1.A2:::x2::x3::x4:::B2.A3:::x5::x6::x7:::B3.' 
slist = (substr for substr in s.split('.') if substr) 
result = [x.split(":::",1)[1] for x in slist] 

正如在评论中指出,我们可以更简洁地说明这一点:

result = [x.split(":::",1)[1] for x in s.split('.') if x] 
+0

+1,但我会''x.split(“:::”,1)[1]为x在s.split('。')如果x]' – jamylak 2013-05-03 14:06:32

+0

@jamylak - 是的,我想这会做到这一点,是不是:)。谢谢。我想我会离开第一个版本,因为它会更自然地遵循文本中的逻辑流程,但我也会包含您的更新。关于第一个版本我喜欢的另一件事是,它使得添加验证变得更容易一些,以确保我们获取可以被':::'拆分为两部分的元素。 – mgilson 2013-05-03 14:10:20