簡體   English   中英

將字符串的選擇字符附加到列表

[英]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]

你可以使用這個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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM