使用变量动态切片字符串

时间:2012-02-22 04:12:29

标签: python list variables dynamic slice

我正在尝试切割字符串并将组件插入列表(或索引,或集合或任何内容),然后比较它们,以便

输入:

abba

输出:

['ab', 'ba']

给定输入的可变长度。

所以如果我切一个字符串

word = raw_input("Input word"
slicelength = len(word)/2
longword[:slicelength]

这样

    list = [longwordleftslice]
    list2 = [longwordrightslice]

    list2 = list2[::-1 ] ## reverse slice
    listoverall = list + list2

但是,内置切片命令[:i]指定i为整数。

我该怎么办?

2 个答案:

答案 0 :(得分:1)

你总是可以这样做..

word = "spamspamspam"
first_half = word[:len(word)//2]
second_half = word[len(word)//2:]

对于任何字符串s和任何整数is == s[:i] + [:i]都是不变的。请注意,如果len(word)为奇数,您将在第二个“半”中获得比第一个更多的一个字符。

如果您使用的是python 3,请使用input而不是raw_input

答案 1 :(得分:1)

我猜你正在使用Python 3.使用//代替/。在Python 3中,/始终返回float,其中列出了不喜欢的内容。 //返回一个int,截断小数点后的所有内容。

然后你要做的就是在中点之前和之后切片。

>>> a = [0, 1, 2, 3, 4]
>>> midpoint = len(a) // 2
>>> a[:midpoint]
[0, 1]
>>> a[midpoint:]
[2, 3, 4]