将字符串的 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)
我该如何解决?
您可以使用此 hack:int(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]
使用字符串 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)
我该如何解决?
您可以使用此 hack:int(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]