2013-05-03 92 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