簡體   English   中英

python中這兩個表達式有區別嗎

[英]Is there a difference between these two expressions in python

所以,基本上我剛開始學習 python,我找不到可以證明這兩條指令是否做同樣事情的東西我有兩個列表,我想將一個復制到另一個列表中,問題是我不明白這是否指令是對的
newList = [x[:] for x in List]因為newList = List做同樣的事情 這兩條指令有區別嗎? 謝謝!

乍一看,它們看起來基本相同,但如果 List 不是列表列表 [正如其名稱立即理解的那樣] ..如果 List 實際上是元組的元組(假設命名錯誤.. :-)) 或者是其他東西。 在這種情況下,您正在從最初的其他內容創建元組列表(通過第一個命令)。 其他這樣的可能性也存在。 所以請仔細查看NewList 和List 的打印和類型。 一個細微的區別,它們並不相同。

如果您遵循第一個命令,您實際上可能正在執行類型轉換。

考慮下面的代碼。

List = tuple( (x,x+1) for x in range(10))
newList = [x[:] for x in List]

打印和類型的輸出立即顯示差異。

print(List)
print(newList)
type(List)
type(newList)

各自的輸出

((0, 1), (1, 2), (2, 3), (3, 4), (4, 5), (5, 6), (6, 7), (7, 8), (8, 9), (9, 10))
[(0, 1), (1, 2), (2, 3), (3, 4), (4, 5), (5, 6), (6, 7), (7, 8), (8, 9), (9, 10)]
<class 'tuple'>
<class 'list'>

暫無
暫無

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

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