如何将字符串中的索引连接到 Python 中的另一个字符串

How to Concatenate an Index in a String to Another String in Python

我有一串长度例如20

我想循环连接字符串中的最后 6 个字符

我是这样做的:

leng = len(theString)

leng2 = leng -6

for i in range(leng2, leng)

      a += theString.index(i)

print a

但我在“a += theString.index(i)”中遇到错误

说 "TypeError: expected a character buffer object"

theString.index的参数必须是字符串,所以,使用

a += theString.index(str(i))

但是,您的代码一定是不完整的——例如,a 从未被初始化! -- 所以这个修复虽然不可或缺,但还不够。请显示 all 代码和示例,说明对于 theString.

的某个初始值您期望的结果

要在索引 i 处获取字符串 a 的字符,您需要执行 a[i]。但是,如果我对问题的理解正确,那么有一种更简单的方法可以满足您的要求。

您可以 slice 字符串的最后 6 个字符,a 像这样:

a[-6:]

这将为您提供一个 6 个字符的字符串(假设 a 有那么多字符。)

所以要将字符串的最后 6 个字符连接到自身,您可以这样做

a += a[-6:]

也就是说,您不需要一个字符一个字符地执行此操作。

你有两个字符串 AB。您想要将 B 的最后 6 个字符连接到 A。如果我是对的,那么你可以这样做:

# this is faster way
>>> A = "abcdefg"
>>> B = "0123456789"
>>> A = A + B[-6:]
>>> A
'abcdefg456789'

如果您想遍历字符串 B 来连接,则

>>> l = len(B)-6;
>>> for i in range(l,len(B)):
        A = A + B[i]
>>> A
'abcdefg456789'
字符串的

index方法从字符串中获取子字符串作为参数。 在代码中,您给出了为什么会出现此类异常的整数值。

更新您的代码:

>>> for i in range(leng2, leng):
...    a += theString[i]

可以通过字符串的slice方法直接获取后六位字符。

>>> theString = "qazxswedcvfrtgbnhyuj"
>>> theString[-6:]
'bnhyuj'