web-dev-qa-db-ja.com

Pythonで文字列を2に分割します

Pythonでループを使用せずに文字列を2つの等しい半分に分割する方法はありますか?

28
Kiwie Teoh
firstpart, secondpart = string[:len(string)/2], string[len(string)/2:]
53
Senthil Kumaran
a,b = given_str[:len(given_str)/2], given_str[len(given_str)/2:]
6
lalli

Python 3:

マダム=>マ d 午前
maam => ma am

first_half  = s[0:len(s)//2]
second_half = s[len(s)//2 if len(s)%2 == 0 else ((len(s)//2)+1):]
1
tHappy

以下の文字列の上記の解決策を少し修正するとエラーがスローされます

_string = '1116833058840293381'
firstpart, secondpart = string[:len(string)/2], string[len(string)/2:]
_

int(len(string)/2)を実行して正しい答えを得ることができます。

firstpart, secondpart = string[:int(len(string)/2)], string[int(len(string)/2):]

1

もう1つの可能なアプローチは、divmodを使用することです。 remは、中央の文字を前に追加するために使用されます(奇数の場合)。

def split(s):
    half, rem = divmod(len(s), 2)
    return s[:half + rem], s[half + rem:]

frontA, backA = split('abcde')
0
J. Lernou