2015-02-09 52 views
0

轉換爲int的預先存在的列表爲str與字典 下面的代碼(的scribus,但肯定不相關)所產生的消息使用...col如何轉換爲str類型?

int -- int 
str -- int 
str -- int 
str -- str *** 

爲什麼在第二循環山坳STR型?

for col in person: 
    num=col 
    scribus.messageBox("",str(type(num))+"--"+str(type(col))) 
    num=str(num) 
    scribus.messageBox("",str(type(num))+"--"+str(type(col))) 
    if num not in personlist: 
     num="0" 
    person[col]=num 
    scribus.messageBox("",str(type(num))+"--"+str(type(col))) 
+1

那麼,'人'是什麼? – 2015-02-09 14:58:56

+1

有趣的行爲。你能提供一個完整的代碼樣本來重現你的問題嗎?最好使用'print'而不是'messageBox'。 – Kevin 2015-02-09 14:59:26

+0

對不起,人是[1,2,3,4,5,6,7]。或類似的代碼太長以至於不能包含簡單的示例,但字典(可能不相關)僅僅是簡單的方式中的int鍵和訪問列表。消息框是equiv。的打印,只是給出了調試信息。我猜印刷類型(num)等 – enonod 2015-02-09 15:05:14

回答

0
person[col]=num 

如果你想與num替換person當前存在迭代的頻率值,這是不行的。 col是列表中的值,而不是列表中值的索引。例如,在第一次迭代中,col爲1,所以person[col]=num修改person中的第二個元素,而不是第一個元素。如果您想要索引,請使用enumerate

for idx, col in enumerate(person): 
    num=col 
    scribus.messageBox("",str(type(num))+"--"+str(type(col))) 
    num=str(num) 
    scribus.messageBox("",str(type(num))+"--"+str(type(col))) 
    if num not in personlist: 
     num="0" 
    person[idx]=num 
    scribus.messageBox("",str(type(num))+"--"+str(type(col))) 
+0

我非常感謝這個迴應,這些問題總是歸結爲缺乏正確的理解。解決了! – enonod 2015-02-09 15:13:46