栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python第三次课:数据结构第四部分----(字典)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python第三次课:数据结构第四部分----(字典)

1. 字典简介

       字典是 python 提供的一种常用的数据结构,它用于存放具有映射关系的数据;字典相当于保

存了两组数据,其中一组数据是关键数据,被称为 key;另一组数据可通过 key 来访问,被称为

value。

       字典可使用 { } 来创建,也可使用 dict() 函数来创建字典。实际上,dict 是一种类型,它就是

Python 中的字典类型;在使用 { } 创建字典时,花括号中应包含多个 key-value 对,key 与 value

之间用英文冒号隔开;多个 key-value 对之间用英文逗号隔开。

注意:

        元组可以做为字典的key值,但是列表不可以作为key值,这是由于 dict 要求 key 必须是不可

变类型,但列表是可变类型,因此列表不能作为元组的 key。

2. 字典特性

(1)不可变类型

(2)可以嵌套

(3)键一般都是字符串,值可以是字符串、列表、字典

3. 创建字典  格式:字典名 = { key:value }
#方法1:
d1 = {"name": "tom", "age": 18, "addr":"hebei"}
print(type(d1))
print(d1)
​
#方法2:
d2 = dict(name="tom", age=18, addr="hebei")
print(type(d2))
print(d2)
4.  字典的操作

(1)len( ) 返回对象中键值对的数量

dict1 = {"name":"lihang","age": 18, "sex":"girl"}

s=len(dict1)         # 查看字典的长度

print(s)

(2)字典名[key] 返回字典中指定的key所对应 的值

dict1 = {"name":"lihang","age": 18, "sex":"girl"}

print(dict1["name"])        #查看字典中键名为name的值

(3)字典名[key] = value 修改字典的中的某个键的值或者在字典中添加值

dict1 = {"name":"lihang","age": 18, "sex":"girl"}

print(dict1)

dict1["age"] = 20       # 将字典中键名为age的值修改为20

print(dict1)

dict1["tel"] ="13622"   #  在字典中添加一个键值对

print(dict1)

(4)del 字典名[key] 删除字典中的值

dict1 = {"name":"lihang","age": 18, "sex":"girl"}

del dict1["age"]        # 将dict1字典中的age元素直接删除

print(dict1)

(5)clear 方法 删除字典中的数据

dict1 = {"name":"lihang","age": 18, "sex":"girl"}

dict1.clear()       #  清空字典

print(dict1)        #  dict1={}  

(6)key in 字典名 检查字典中是否有这个指定的key【has_keys】

dict1 = {"name":"lihang","age": 18, "sex":"girl"}

if "name" in dict1:

    print("yes")         #判断字典中是否有指定的key,如果有,输出yes

(7)pop 方法 从字典中弹出一个键值对

dict1 = {'name':'lihang','age': 18, 'sex':'girl'}

s = dict1.pop('age')

print(s)          #  有age直接删除---有返回值,按键删除

print(dict1)      #  删除age后的字典  {'name':'lihang','sex':'girl'}

(8)copy方法 从字典中复制全部的键值对给一个新的变量

dict1 = {"name":"lihang","age": 18, "sex":"girl"}

dict2=dict1.copy()    #  将字典dict1中的全部键值对复制到新字典dict2中

print(dict2)

(9)item方法 将字典中的键值对转换成元组/列表的一个的元素

dict1 = {"name":"lihang","age": 18, "sex":"girl"}

s = dict1.items()         #  将字典中的键值对转换成元组/列表的一个的元素

print(s)

(10)keys 将字典的全部的键构成一个列表/元素

dict1 = {"name":"lihang","age": 18, "sex":"girl"}

s = dict1.keys()         #  将字典的全部的键构成一个列表/元素

print(s) 

(11)values 将字典的全部的值构成一个列表/元素

dict1 = {"name":"lihang","age": 18, "sex":"girl"}

s = dict1.values()         #  将字典的全部的值构成一个列表/元素

print(s) 

案例:让用户输入个人基本信息,包括 姓名、电话、住址、年龄,通过字典保存用户的数据信息,当用户输入q的时候,结束输入;

结束输入后,打印显示全部的用户名,并要求选择一个名称;

然后打印输出这个用户的全部信息,输出信息的格式:用户 xxx,电话是xxx,地址是xxx,年龄是xxx。

import sys
d1 = {}
li = []
while True:
    name = input("请输入姓名或者按Q退出:")
    name = name.lower()
    if name == "q":
        break
​
    phoneNum = input("请输入电话: ")
    userAge = input("请输入年龄: ")
    homeAddr = input("请输入地址: ")
​
    d1[name] = {"tel":phoneNum, "addr":homeAddr ,"age":userAge}
    li.append(name)
​
n = 1
print("================请根据菜单选择姓名=====================")
for uname in li:
    print("%d %s"%(n,uname))
    n += 1
​
print("输入q退出:")
userInput = input("请选择:")
​
if userInput == "q":
    sys.exit(0)
​
userInput = int(userInput)
​
uname = li[userInput - 1]
​
age = d1[uname]["age"]
addr = d1[uname]["addr"]
tel = d1[uname]["tel"]
​
print("用户%s,电话是%s,地址是%s,年龄是%s"%(uname,tel,addr,age))

5.  遍历序列对象 (1) 遍历字符串方法
#  方法1:
str = "abcd hallo world"
for var in str:
    print(var)

#  方法2:
str = "abcd hallo world"
num_len = len(str)
for num in range(num_len):
    print(str[num])
(2)遍历列表方法

#  方法1:

str = [1,2,8,11,7,3]
for var in str:
    print(var)

#  方法2:

str = [1,2,8,11,7,3]
num_len = len(str)
for num in range(num_len):
    print(str[num])
​

#  方法3:

str = [1,2,8,11,7,3]
num_len = len(str)
for num in range(num_len):
    print(str.pop())
​

#  方法4:

str = [1,2,8,11,7,3]
num_len = len(str)
for num in range(num_len):
    print(str[num])
    del str[num]
(3) 遍历元组的方法
# 方法1
str = (1,2,8,11,7,3)
str = list(str)
for var in str:
    print(var)
str = tuple(str)
 
# 方法2
str = (1,2,8,11,7,3)
num_len = len(str)
str = list(str)
for num in range(num_len):
    print(str[num])
str = tuple(str)

(4) 遍历字典的方法

1)遍历字典的key

#  方法1:
d1 = {"name":"tom", "age":18, "addr":"hb", "tel":"136666666"}
for var in d1:             # 每次循环是将将键赋值给var
    print(var,end=" ")
    print(d1[var])


#  方法2:
d1 = {"name":"tom", "age":18, "addr":"hb", "tel":"136666666"}
v = d1.keys()
for var in v:
    print(var)

2)遍历字典的value

d1 = {"name":"tom", "age":18, "addr":"hb", "tel":"136666666"}
v = d1.values()
for var in v:
    print(var)

3)遍历字典的键值对

d1 = {"name":"tom", "age":18, "addr":"hb", "tel":"136666666"}
v = d1.items()
for var in v:
    print(var

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/769458.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号