【Python學習筆記】之數據結構

本文主要記錄python學習過程中與數據結構相關的內容。主要會涉及到列表、字典、元組等。

1 字典

1.1 如何判斷字典中是否存在某個key?

在Python 2.x 時可以使用內置函數 has_key(),Python 3.x 以後不再支持該函數,被__contains(‘keyname’)所替代。

推薦使用如下的 in 方法

~ $ python3

>>> d = {'name':{},'age':{},'sex':{}}
>>> print name in d.keys()

True

1.2 刪除字典內所有元素

clear()方法

#!/usr/bin/python
# -*- coding: UTF-8 -*-
dict = {'name': 'blogsite', 'alexa': 10000, 'url': 'http://blog.csdn.net/'}
dict.clear()

1.3 刪除字典給定鍵 key 所對應的值,返回值爲被刪除的值

pop()方法

#!/usr/bin/python
# -*- coding: UTF-8 -*-
site= {'name': 'blogsite', 'alexa': 10000, 'url':'http://blog.csdn.net/uuihoo/'}
pop_obj=site.pop('name') # 刪除要刪除的鍵值對,如{'name':'blogsite'}
print pop_obj   # blogsite

1.4 爲字典添加鍵值對

如果要爲 dict 添加鍵值對,只需爲不存在的 key 賦值即可。實現此操作的語法格式如下:

dict[key] = value

1.5 計算字典元素個數

可以使用內置函數 len() 來計算字典元素個數,即鍵的總數。

1.6 遍歷字典

items()函數將返回鍵值對列表,keys()函數將返回鍵列表,values()函數將返回一個值列表。

  • (a) 遍歷所有鍵值對

    dict = {0:'a', 1:'b', 2:'c', 3:'d'}
    
    for key,value in dict.items():
    	print("\nKey:" + key)
    	print("Value:" + str(value))
    
  • (b) 遍歷所有鍵

    dict = {0:'a', 1:'b', 2:'c', 3:'d'}
    
    for key,value in dict.keys():
    	print(key)
    

    其實還有一種更簡便的寫法,可以把 keys() 方法省略。
    因爲遍歷字典時,如果你在 for 後面僅聲明一個變量,Python會默認遍歷所有的鍵並依次將鍵賦值給這個變量。

    dict = {0:'a', 1:'b', 2:'c', 3:'d'}
    
    for key,value in dict:
    	print(key)
    
  • (c) 遍歷所有值

    dict = {0:'a', 1:'b', 2:'c', 3:'d'}
    
    for key,value in dict.values():
    	print("Value:" + str(value))
    

1.7 合併字典

合併字典有兩種方法,一種是使用 update() 函數,還有一種是利用 ** 的用法自定義合併。

  • (a) 使用 update() 方法

    使用內置函數,將新的字典合併到當前字典中。函數參數爲希望添加到指定字典dict裏的字典。該方法沒有任何返回值。

    合併過程可能出現以下兩種情況:
    (1)有相同的鍵時:會使用最新的字典中該鍵對應的值做爲最終結果。
    (2)有新的鍵時:會直接把字典中的鍵值對加入到當前字典中。

    dict_1 = {'Id001': 1, 'Id002': 2}
    dict_2 = {'Id001': 0, 'Id003': 3, 'Id004': 4}
    
    dict_2.update(dict_1)
    
    print(dict_2)
    

    輸出結果如下:{'Id001': 1, 'Id003': 3, 'Id004': 4, 'Id002': 2}

  • (b) 使用 **,函數將參數以字典的形式導入

    def Merge(src_dict_1, src_dict_2):
    	dst_dict = {**src_dict_1, **src_dict_2}
    	return dst_dict
    
    dict_1 = {'Id001': 1, 'Id002': 2}
    dict_2 = {'Id003': 3, 'Id004': 4}
    dict_3 = Merge(dict_1, dict_2)
    print(dict3)
    

    輸出結果如下:{'Id001': 1, 'Id002': 2, 'Id003': 3, 'Id004': 4}

2 列表

2.1 判斷元素是否在列表

可以使用 in 方法,也可以使用內置函數 index()。

num = [1,2,3,4,5]
a = 3
if a in num:
    print("a=%d is in list num" % a)

b_idx = num.index(a)
print("The index of a=%d in the list is %d" % (a, b_idx))

(全文完)


本文作者 :phillee
發表日期 :2021年12月20日
本文鏈接https://www.cnblogs.com/phillee/p/15711768.html
版權聲明 :自由轉載-非商用-非衍生-保持署名(創意共享3.0許可協議/CC BY-NC-SA 3.0)。轉載請註明出處!
限於本人水平,如果文章和代碼有表述不當之處,還請不吝賜教。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章