[英]Why does casting a Python dict to a tuple return a tuple of keys?
我遇到了一些令我非常困惑的Python代碼。
my_dict = {'a': 'b'}
a, = my_dict # a = 'a'
a, b = my_dict # ValueError: Too many values to unpack
基本上,我發現將字典作為元組轉換會返回字典鍵的元組。
my_dict = {'a': 'b', 'c': 'd'}
a = tuple(my_dict) # a = ('a', 'c')
為什么元組(dict)會返回一個鍵元組? 我可以理解它,但無法找到任何關於原因的文檔或解釋。 有誰能解釋一下?
ITER(d)
在字典的鍵上返回一個迭代器。
注意,這就是為什么當你使用list
或tuple
將iterable轉換為list或tuple時,我不喜歡使用術語“cast”。 從元組文檔 :
class tuple([iterable]):
...
構造函數構建一個
tuple
其項目與iterable的項目相同且順序相同。 iterable可以是序列,支持迭代的容器,也可以是迭代器對象。 如果iterable已經是一個元組,則返回不變。 例如,tuple('abc')
返回('a', 'b', 'c')
和tuple( [1, 2, 3] )
返回(1, 2, 3)
。 如果沒有給出參數,構造函數將創建一個新的空元組()
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.