2017-10-30 6 views
1

中間のコンマに基づいて文字列を2つの部分に分割したいと考えています。文字列を中央のコンマで2つに分割しますか?

  • コンマ
  • の無制限の量がある場合もありますから、すべての時間

でコンマの奇数があるだろうと仮定します

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

へ:

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

これまでに何を試みましたか? –

+5

あなたはどのようなアプローチを試しましたか、何が間違っていますか? – roganjosh

答えて

3

いくつかの基本的な演算:あなたはちょうどそれらを取り除くので、各joinステートメントに追加することができます真ん中のコンマの後に元の文字列から余分なスペースを排除したい場合には

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

','.join(...).strip() 
+0

これはbtwを実行しません –

+0

@MatthewHart是非、あなたはカッコのスリップを修正できました。一定。エリックがどれほど素晴らしいか見てください;) – kabanus

+0

申し訳ありませんが、私は文字通りちょうど仕事を終えていました。私はあなたにそれを補うために+1を与えるでしょう:) –

0

は、あなたの刺し傷がinput_strとします、

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

が必要なものを印刷します。

+0

また、ヘルプページをチェックアウトする - 手動でバックティックに入れずに、4つのスペースでインデントする(ハイライトしてCtrl + Kキーを押す)。 –

+0

@StefanPochmann、Python 3のために編集され、変数Tim Pietzckerの名前が4つの空白で字下げされました。ありがとうございました。 – riyasyash

0

よろしくお願いいたします。私は、一例として、あなたの文字列を使用します。

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とします。この後、2つの文字列を作成することができます: A=S[0:m-1];B=S[m+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') 
関連する問題