簡體   English   中英

為什么將Python dict轉換為元組會返回一組鍵?

[英]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)

在字典的鍵上返回一個迭代器。

注意,這就是為什么當你使用listtupleiterable轉換為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.

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