在中间逗号分割成两个字符串?

时间:2017-10-30 17:10:07

标签: python python-3.x

我想根据中间的逗号将字符串分成两部分。

  • 可以有无限量的逗号
  • 假设一直有奇数个逗号

自:

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

要:

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

4 个答案:

答案 0 :(得分:3)

一些基本的算术:

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

如果您想在中间逗号后删除原始字符串中的额外空格,您可以将它们删除,因此请添加到每个join语句中:

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

答案 1 :(得分: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')

答案 2 :(得分:0)

让你的sting成为input_str,然后是

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

将打印您需要的内容。

答案 3 :(得分:0)

的问候。我将使用您的字符串作为示例:

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

假设,的数量为奇数。所以,我的想法 找到 中间,(这将是(n + 1)th < / em> ,)。为此,我们可以应用字符串方法.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:]; 产生所需的分裂。

希望这会有所帮助。