簡體   English   中英

在中間逗號之間將字符串拆分為兩個?

[英]Split a string in two on the middle comma?

我想根據中間逗號將字符串分成2部分。

  • 可以有無限數量的逗號
  • 假設在所有時間都有奇數個逗號

從:

"1, 4, a, fdsa, 53, dfs, sdfg, klk"

至:

"1, 4, a, fdsa" and "53, dfs, sdfg, klk"

一些基本的算法:

splitstring = mystring.split(',')
print(','.join(splitstring[:len(splitstring)//2]) + ' and ' + ','.join(splitstring[len(splitstring)//2:]))

如果您想在中間逗號后消除原始字符串中的多余空格,可以去除它們,因此添加到每個join語句中:

','.join(...).strip()

問候。 我將以您的字符串為例:

S = "1, 4, a, fdsa, 53, dfs, sdfg, klk"

假設的數目,將是奇數。 所以,我的想法找到中間, (這將是(N + 1)個 , )。 為此,我們可以應用字符串方法.find

S.find(',')將返回1 (由於第一,是在索引1

S.find(',', 2)將返回4 (因為你的字符串中的第3個字符之后,第一個,是在指數4

讓數量,字符串中是2N + 1。 既然你不知道中間的位置, (對於其他字符串),你可以使用循環多達(N + 1)倍來定位中間的指數, 您可以使用S.count(',')發現的數量, (這將是N)的。

令位置(或索引)為m 這樣一來,您就可以創建兩個字符串: A=S[0:m-1]; B=S[m+1:]; 產生所需的分割。

希望這可以幫助。

只是分裂並重新加入上半場。

>>> s = '1, 4, a, fdsa, 53, dfs, sdfg, klk'

>>> *a, b = s.split(', ', s.count(',') // 2 + 1)
>>> ', '.join(a), b
('1, 4, a, fdsa', '53, dfs, sdfg, klk')

讓你的刺痛是input_str,然后

s = input_str.split(',')
string_length = len(s)
print(','.join(s[0:string_length//2]) +" and " + ','.join(s[string_length//2:]))

將打印您所需要的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM