2 回答

TA貢獻1859條經(jīng)驗 獲得超6個贊
在 Python 的靜態(tài)類型注釋中,list
s(以及除tuple
s 之外的所有序列)被假定為同類類型(它可能仍然是多種類型的聯(lián)合,但它不是不同的單一類型,具體取決于您正在查看的索引) . 您通過讓索引具有一種類型而其他索引具有不同類型來list
違反該假設(shè)。0
盡管 Python 通常不會強制執(zhí)行 的“預(yù)期”用法list
,但類型檢查器會執(zhí)行,并且沒有任何機制可以解決手動強制轉(zhuǎn)換或類型轉(zhuǎn)換的問題,就像您在此處所做的那樣。
簡短回答:你在“濫用” list
s,typing
當(dāng)你這樣做時不會幫助你。因此,要么忽略/禁用此代碼的類型檢查器(畢竟它會工作得很好),要么忍受毫無意義的轉(zhuǎn)換。

TA貢獻1777條經(jīng)驗 獲得超3個贊
這個怎么樣?它測試每個項目的類型,并根據(jù)需要將其放入適當(dāng)?shù)牧斜碇小?/p>
data = [4, "lorem", "ipsum", "dolor", "sit", "amet"]
parts = []
words = []
[parts.append(item) if type(item) == int else words.append(item) for item in data]
添加回答
舉報