将字符串的 select 个字符附加到列表

Appending select character of a string to list

使用字符串 ABCDEFGHIJKLM 我正在尝试实现以下目标:

ABCDEFGHIJKLM
0123456789012

第一个 if 语句有效,但 else 语句中断:

position.append(str(x[1])) TypeError: 'int' object is not subscriptable

这是代码:

number = []
count = 0
for x in range(string):
    if count <= 9:
        number.append(str(x))
    else:
        number.append(str(x[1]))
    count = count+1
number = ''.join(map(str, number))
print(number)

我该如何解决?

您可以使用此 hackint(str(s)[1])(str(s)[1]),具体取决于您的意愿:

>>> s = 12
>>> int(str(s)[1])
2
>>> (str(s)[1])
'2'

或者您可以这样做并摆脱 if else 语句...并且适用于任何长度的字符串。

number = [] for x in range(string): number.append(str(x % 10)) number = ''.join(map(str, number)) print(number)

通过执行操作

str(x[1])

您正在尝试对整数 x 执行子字符串,然后然后将其转换为字符串。

字符串是字符的容器,子字符串函数允许我们从这个集合中检索一个或多个字符。

整数不是其他对象的容器,因此不属于可订阅对象(它不实现 __getitem__() 方法)。我们无法从中检索特定字符。

解决方案是颠倒您的操作顺序 - 将整数转换为字符串首先,然后对其执行子字符串以检索第二个字符。

str(x)[1]

我们可以通过让它只接受最后一个字符来改进它,这将适应大于 99 的数字:

str(x)[-1]