[英]Appending select character of a string to list
使用字符串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)
我該如何解決這個問題?
通過執行操作
str(x[1])
您正在嘗試對整數 x 執行子字符串,然后將其轉換為字符串。
字符串是字符的容器,substring 函數允許我們從這個集合中檢索一個或多個字符。
整數不是其他對象的容器,因此不被歸類為可下標對象(它不實現__getitem__()
方法)。 我們無法從中檢索特定字符。
解決的辦法是扭轉你的操作指令-整數先轉換為字符串,然后在其上執行的子串來檢索第二個字符。
str(x)[1]
我們可以通過僅使用最后一個字符來改進這一點,這將適用於大於 99 的數字:
str(x)[-1]
你可以使用這個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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.