附加要列出的字符串的选择字符

时间:2016-03-17 12:12:21

标签: python string list char append

使用字符串ABCDEFGHIJKLM我试图实现以下目标:

ABCDEFGHIJKLM
0123456789012

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

  

position.append(str(x[1]))   TypeError:'int'对象不可订阅

这是代码:

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)

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:1)

执行操作

str(x[1])

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

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

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

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

str(x)[1]

我们可以通过仅使用最后一个字符来改善这一点,这可以容纳大于99的数字:

str(x)[-1]

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

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

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