一、使用in方法
in方法是Python中判斷字典key是否存在的最簡單方法。它的語法格式如下:
if key_name in dict_name: # key存在時執行的語句 else: # key不存在時執行的語句
其中,key_name為要查找的key值,dict_name為要查找的字典。如果key_name在字典dict_name的key中,則執行if語句內的語句;反之,執行else語句內的內容。這裡的in方法是用來查找是否包含某個元素的方法,不僅可以查找字典key,還可以查找列表、元組等其他數據類型。
下面是一個實例代碼:
my_dict = {"key1": "value1", "key2": "value2", "key3": "value3"} if "key1" in my_dict: print("key1存在") else: print("key1不存在") if "key4" in my_dict: print("key4存在") else: print("key4不存在")
上述代碼輸出的結果為:
key1存在 key4不存在
二、使用get方法
get方法是Python字典中常用的方法之一,可以用來獲取指定key對應的value值。當指定的key不存在時,如果不指定默認值,get方法會返回None。可以結合is方法進行判斷,如果返回值為None,則表示該key不存在。
get方法的語法格式如下:
dict_name.get(key_name, default)
其中,key_name為要獲取的key值,dict_name為要查找的字典,default為可選參數,表示key不存在時的默認返回值。
下面是一個實例代碼:
my_dict = {"key1": "value1", "key2": "value2", "key3": "value3"} result1 = my_dict.get("key1") result2 = my_dict.get("key4") if result1 is not None: print("key1存在") else: print("key1不存在") if result2 is not None: print("key4存在") else: print("key4不存在")
上述代碼輸出的結果與in方法的示例代碼相同。
三、使用keys方法
keys方法返回一個字典的所有key值,可以通過判斷列表中是否包含待查找的key來判斷key是否存在。具體實現如下:
key_list = dict_name.keys() if key_name in key_list: # key存在時執行的語句 else: # key不存在時執行的語句
下面是一個實例代碼:
my_dict = {"key1": "value1", "key2": "value2", "key3": "value3"} key_list = my_dict.keys() if "key1" in key_list: print("key1存在") else: print("key1不存在") if "key4" in key_list: print("key4存在") else: print("key4不存在")
上述代碼同樣輸出與in方法的示例代碼相同的結果。
四、使用has_key方法(Python版本小於3.x)
在Python2.x版本中,字典對象有一個has_key方法,可以用來判斷字典中是否存在指定的key。同樣可以結合if語句來進行判斷。
if dict_name.has_key(key_name): # key存在時執行的語句 else: # key不存在時執行的語句
下面是一個實例代碼:
my_dict = {"key1": "value1", "key2": "value2", "key3": "value3"} if my_dict.has_key("key1"): print("key1存在") else: print("key1不存在") if my_dict.has_key("key4"): print("key4存在") else: print("key4不存在")
在Python3.x中,這個方法已經被廢棄,不能使用。
五、總結
本文介紹了Python中判斷字典key是否存在的幾種方法,包括in方法、get方法、keys方法和has_key方法。其中,in方法是最簡單的方法,也是最常用的方法;get方法可以結合None值進行簡單的判斷;keys方法可以返回一個字典的所有key值;has_key方法在Python2.x中有效,但已經被廢除,不能在Python3.x中使用。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/307206.html