假設我們有一個字典,像這樣:查找字典值的類型,而無需知道鍵
my_dict = {'foo': [1, 2.325, 'asdasd', lambda x: x[0], ...], ...}
一個如何得到的值的類型(個人列表項,而不是名單本身)不知道最有效的方法中的任何鍵?
我想出了兩種方法,但他們都覺得像一個矯枉過正:
方法1:
var_types = [type(x) for x in list(my_dict.values())[0]]
我想,作爲字典變大,鑄造my_dict.values()
列出可能會變慢..
方法2:
for k in my_dict:
var_types = [type(x) for x in my_dict[k]]
break
一個完整的循環for
是一個迭代後手動終止..
那麼,有沒有更好的辦法?
的問題是,dict.values()
不會返回迭代但dict_values對象不支持索引..
編輯:在這個例子中是安全的假設變量類型所有字典鍵是一樣的。
'dict_values'確實實現了迭代器協議。僅僅因爲它不支持索引,並不意味着它不可迭代。 –
@NicholasFlees那麼你會怎麼做呢? –
我對你想要做的事情有點困惑。你只是試圖獲取字典中值的第一個元素的類型(假定它是列表)? –