下面的行返回一個錯誤:ValueError:解壓縮的值太多 - 是否可以忽略一個值?
self.m, self.userCodeToUserNameList, self.itemsList, self.userToKeyHash, self.fileToKeyHash = readUserFileMatrixFromFile(x,True)
該函數實際上返回6個值。但在這種情況下,最後一個是無用的(其無)。所以我想只存儲5.
是否可以忽略最後一個值?
下面的行返回一個錯誤:ValueError:解壓縮的值太多 - 是否可以忽略一個值?
self.m, self.userCodeToUserNameList, self.itemsList, self.userToKeyHash, self.fileToKeyHash = readUserFileMatrixFromFile(x,True)
該函數實際上返回6個值。但在這種情況下,最後一個是無用的(其無)。所以我想只存儲5.
是否可以忽略最後一個值?
您可以使用*rest
在Python 3
>>> x, y, z, *rest = 1, 2, 3, 4, 5, 6, 7
>>> x
1
>>> y
2
>>> rest
[4, 5, 6, 7]
這種方式可以始終確保不會遇到拆包的問題。
OP只想丟棄一個值,所以我不認爲這個語法是必需的(而且它實際上並沒有被丟棄)。 – TigerhawkT3
我覺得這更通用。也許在OP的路上需要/想要的價值,或有更多的價值來解壓...等 – Idos
通常使用_
來表示不需要的變量。
a, b, c, d, e, _ = my_func_that_gives_6_values()
這也經常用於迭代若干次。
[random.random() for _ in range(10)] # gives 10 random values
只是片最後一個出去:
self.m, self.userCodeToUserNameList, \
self.itemsList, self.userToKeyHash, \
self.fileToKeyHash = readUserFileMatrixFromFile(x,True)[:-1]
請注意,這隻有當返回的對象支持切片。
這隻適用於如果返回的對象支持切片。 – TigerhawkT3
@ TigerhawkT3你是對的。我並不是說這是最好的解決方案,但它可能對OP很有用。和其他方法已經被回答,這就是爲什麼他們不包括 – BusyAnt
@ TigerhawkT3答案編輯。 – BusyAnt
只是,使用扔掉的變量 '_'
self.m,
self.userCodeToUserNameList,
self.itemsList,
self.userToKeyHash,
self.fileToKeyHash,
_ = readUserFileMatrixFromFile(x,True)
這裏 '_' 是故意忽略。
爲什麼不添加必要的變量來解壓縮?將它命名爲「未使用」或其他。 – TigerhawkT3
僅僅因爲它看起來更乾淨沒有無用的變量 –