【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)。转载请注明出处!
限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。

原文地址:https://www.cnblogs.com/phillee/p/15711768.html