我正在尝试切割字符串并将组件插入列表(或索引,或集合或任何内容),然后比较它们,以便
输入:
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
为整数。
我该怎么办?
答案 0 :(得分:1)
你总是可以这样做..
word = "spamspamspam"
first_half = word[:len(word)//2]
second_half = word[len(word)//2:]
对于任何字符串s
和任何整数i
,s == 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]