自学内容网 自学内容网

人话学Python-字典

一:字典的定义

        1:概念

        字典在Python中的用处和用法和C++中的map类型类似,都是通过“键值对”的方式存储数据和数据之间的关系。

        在字典当中,总有一个key对应一个value,两个数据所组成的数据类型就是字典。

        2:用法

        和列表不同,字典使用花括号{}定义,其中,每一个字典元素之间用逗号隔开,而表示的键值对用冒号连接。

        也可以使用相应函数进行字典的创建。

dic = {"name": "WinterJujube", "age": 18, "number": 12345678900}
empty_dic = {}

info = dict()

二:字典的相关操作

        1:创建字典和打印整体

dic = {"name": "WinterJujube", "age": 18, "number": 12345678900}

print(dic)        # 整体打印

print(len(dic))   # 字典长度

print(type(dict)) # 字典的类型

>>>{'name': 'WinterJujube', 'age': 18, 'number': 12345678900}
>>>3
>>><class 'type'>

        2:访问字典值

        通过读取字典的键可以输出这个键所对应的值。需要注意,如果输出的键在字典中并不存在不会自动创建新的键值对。

dic = {"name": "WinterJujube", "age": 18, "number": 12345678900}

print(dic["name"])

print(dic["age"])

>>>WinterJujube
>>>18

        3:删除字典元素

        和访问字典类似,可以通过删除键的形式删除相对应的值。

        使用del语句可以进行删除。

dic = {"name": "WinterJujube", "age": 18, "number": 12345678900}

del dic["name"]

print(dic)

>>>{'age': 18, 'number': 12345678900}

        如果需要删除整个字典有两种方式

        使用clear()进行删除的字典会保留一个空字典,而使用del语句删除的字典则不会再存在。

dic = {"name": "WinterJujube", "age": 18, "number": 12345678900}

dic.clear()

print(dic)

del dic

print(dic)

>>>Traceback (most recent call last):
>>>  File "D:\pythonProject1\Study.py", line 9, in <module>
>>>    print(dic)
>>>          ^^^
>>>NameError: name 'dic' is not defined. Did you mean: 'dir'?
>>>{}

        可以看到编译器提示无法找到dic字典。

        4:注意

        如果一个键被多次赋值,后面添加的值会覆盖之前的值。也就是只保留最后一次操作留下的值。

        字典的键是一个不可变量,也就是说可以是字符串、数字、元组,但是不能是列表

三:字典相关函数和方法

dic = {"name": "WinterJujube", "age": 18, "number": 12345678900, "like": "Skadi"}

# len()返回字典长度
print("length:", len(dic))

# str()将字典转化为字符串形式
print(str(dic))

# copy()创建一个原字典的复制
print("dic copy:", dic.copy())

# fromkeys()创建一个新字典,键来源于指定字典,值来自初始化的值
print("New dict:", dict.fromkeys(dic, 10))

# get()返回键对应的值
print("get number:", dic.get("number"))

# get()返回键对应的值,如果键不存在返回指定数字
print("get sex, if don't exist print 0:", dic.get("sex", 0))

# setdefault()相当与get(),但是如果键不存在就新建一个键值对
print("get sex, if don't exist add new item with value male:", dic.setdefault("sex", "male"))

print("dict after upon:", dic)

# in判断键是否存在
if "name" in dic:
    print(True)
else:
    print(False)

# 以下三种都是输出全部的键值对、键或者值
print(dic.items())

print(dic.keys())

print(dic.values())

# pop()删除键
print("delete key and value:", dic.pop("sex"))

print("after upon:", dic)

# popitem()删除最后一个键值对
print("delete last item:", dic.popitem())

print("after upon:", dic)

        值得注意的一点是,使用get()方法和直接使用引索进行访问不同的是,直接使用引索,如果对应的键不存在,会报错。而get()方法如果键不存在会又返回值。

        下面是上面程序的结果:

>>>length: 4
>>>{'name': 'WinterJujube', 'age': 18, 'number': 12345678900, 'like': 'Skadi'}
>>>dic copy: {'name': 'WinterJujube', 'age': 18, 'number': 12345678900, 'like': 'Skadi'}
>>>New dict: {'name': 10, 'age': 10, 'number': 10, 'like': 10}
>>>get number: 12345678900
>>>get sex, if don't exist print 0: 0
>>>get sex, if don't exist add new item with value male: male
>>>dict after upon: {'name': 'WinterJujube', 'age': 18, 'number': 12345678900, 'like': 'Skadi', 'sex': 'male'}
>>>True
>>>dict_items([('name', 'WinterJujube'), ('age', 18), ('number', 12345678900), ('like', 'Skadi'), ('sex', 'male')])
>>>dict_keys(['name', 'age', 'number', 'like', 'sex'])
>>>dict_values(['WinterJujube', 18, 12345678900, 'Skadi', 'male'])
>>>delete key and value: male
>>>after upon: {'name': 'WinterJujube', 'age': 18, 'number': 12345678900, 'like': 'Skadi'}
>>>delete last item: ('like', 'Skadi')
>>>after upon: {'name': 'WinterJujube', 'age': 18, 'number': 12345678900}


原文地址:https://blog.csdn.net/WinterXJujube/article/details/142440652

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!