如何将字符串分成两部分?

时间:2014-03-01 00:19:17

标签: python string string-length divide chunks

我正在进行python练习,但我被困在一个。

字符串分为两部分(两个新字符串):part1和part2。

如果字符串的长度相等,那么这两部分也必须相等。

E.g。 'Help' = 'He' and 'lp'

如果字符串的长度不相等,则将额外的字母分配给part1。

E.g。 'Hello' = 'Hel' and 'lo'

我正在进行的练习有两个字符串。我需要剪切这两个字符串,然后按以下方式连接它们:

<String1 Part1> + <String2 Part2>

<String2 Part1> + <String1 Part2>

因此,如果我们有cardplan字样,则会caanplrd

到目前为止,我能想到的只有:

def divide_strings(word1, word2):
    if len(word1)%2 > 0 or len(word2) %2 > 0:

    else len(word1) %2 == 0 or len(word2) %2 == 0:

我知道我还远未完成,但我确实可以在正确的方向上使用一些提示。 我的大脑卡住了。

提前致谢!

3 个答案:

答案 0 :(得分:2)

你说提示 - 所以

分割字符串的重要一点是试图找出切割此字符串的位置。

考虑这个作业

x = len(s) // 2

if len(s) is 0 or 1, x will be 0
if len(s) is 2 or 3, x will be 1
if len(s) is 4 or 5, x will be 2

在所有情况下,x都是您要分配给第2部分的字符数

查找字符串切片并注意它可以采用负索引从字符串末尾开始计数

ADDED

此外,我注意到您的示例似乎与您的问题陈述不符。

即,如果原始字符串是“card”,我希望下面的结果基于您的问题陈述。显然,你的表现出不同的预期结果 - 对于仔细检查事物来说可能是一个好主意。

a / ca b / rd

答案 1 :(得分:0)

你想要的是天花板分割:

>>> w = 'hello'
>>> split = -( ( -len(w) )//2 )
>>> split
3
>>> p1, p2 = w[:split], w[split:]
>>> p1
'hel'
>>> p2
'lo'

这就是分裂:

  1. 取词(5)
  2. 取消它的负面(-5)
  3. 做Python的正常分区,(-5 // 2 == -3)
  4. 然后取消该结果,(3)
  5. 所以把它放在一个函数中:

    def splitword(w):
        split = -((-len(w))//2)
        return w[:split], w[split:]
    

    >>> splitword('help')
    ('he', 'lp')
    >>> splitword('hello')
    ('hel', 'lo')
    

答案 2 :(得分:0)

以下内容应该可以帮助您做您想做的事情。我没有安装python解释器,所以我实际上无法对此进行测试。

def splitword(w):
    split = -((-len(w))//2)
    return w[:split], w[split:]

part1a, part2a = splitword('card')
part1b, part2b = splitword('plan')

newword1 = part1a + part2b
newword2 = part1b + part2a