簡體   English   中英

元組作為字典的鍵說:“元組”對象不支持項目分配

[英]tuple as key to a dictionary says: 'tuple' object does not support item assignment

我在python中有此功能:

def initialize(s,cfg):
    pi={},
    for i,w in enumerate(s):
        j=i+1
        for X,rhs in cfg.items():
            if rhs.has_key(w):
                print (j,j,X),rhs[w]
                pi[(j,j,X)]=rhs[w]
    return pi

當我跑步時

    pi[(j,j,X)]=rhs[w]
TypeError: 'tuple' object does not support item assignment

其上方的打印返回(1, 1, 'DT') 1.0

我一定想念一些東西,但是據我所知,我並沒有在試圖改變元組。 為什么會出現該錯誤?

有一次我認為這可能是由於j和X被指向並試圖創建一個新的元組,但這沒有用。 我也在外殼上嘗試了這個:

>>> pi={}
>>> X="DT"
>>> j=1
>>> t=(j,j,X)
>>> pi[t]=1.0
>>> pi
{(1, 1, 'DT'): 1.0}

如您所見,這一切正常。 關於為什么獲取tuple does not support item assignment error任何想法在我的函數tuple does not support item assignment error ,而在Shell上tuple does not support item assignment error

您在此行上有一個逗號結尾:

pi={},

簡寫為:

pi = ({},)

換句話說,pi是一個元組。

暫無
暫無

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

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