Python程式檢查字典的值是否與列表中的順序相同


字典是Python中可變的資料結構,允許使用者以鍵值對的形式儲存資料。鍵和值用符號“:”分隔。鍵是唯一的,值可以重複。值可以是單個元素,也可以是列表中的多個元素。如果要從字典中訪問元素,必須使用鍵。它提供各種函式和方法來處理和操作字典。

有幾種方法可以檢查字典的值是否與列表中的順序相同。

比較列表和字典的值

zip() 函式是Python的內建函式,它接受多個可迭代物件作為引數,並返回一個元組迭代器。每個元組包含來自輸入可迭代物件的對應元素。換句話說,zip() 函式根據元素的位置將來自多個可迭代物件的元素組合在一起。

列表推導式是Python中建立列表的一種簡潔而強大的方法。它允許我們透過迭代現有可迭代物件(如列表、元組或字串)並對每個元素應用表示式或條件來生成新的列表。生成的列表在一行程式碼中建立,使語法簡潔易懂。

示例

在這種方法中,我們使用zip() 函式和列表推導式。zip() 函式同時迭代列表和字典。zip() 函式返回一個迭代器,該迭代器生成包含每個可迭代物件中對應元素的元組。

接下來,我們將在all() 函式中使用列表推導式來比較字典dict_values中的每個值與列表list_values中的對應元素。只有當所有比較都為True時,all() 函式才返回True。如果列表和字典的長度不相等,迭代將在較短的長度處停止,較長容器中的額外值將被忽略。

def check_order(list_values, dict_values):
   return all(list_val == dict_val for list_val, dict_val in zip(list_values, dict_values))
my_list = [1, 2, 3, 4, 5]
my_dict = {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}
result = check_order(my_list, my_dict.values())
print(result)

輸出

True

將字典轉換為值列表

在這種方法中,我們將字典的值轉換為列表,然後將其直接與給定的列表進行比較。

示例

在這種方法中,我們使用list()函式將字典值dict_values.values()轉換為列表。然後,我們使用==運算子直接將此列表與給定的列表進行比較。如果兩個列表相等,則表示字典的值與列表中的順序相同。

def check_order(list_values, dict_values):
   return list(dict_values.values()) == list_values
my_list = [1, 2, 3, 4, 5, 6]
my_dict = {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}
result = check_order(my_list, my_dict)
print(result)

輸出

False

更新於:2023年8月2日

79 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告