1.1 字典简介
-
定义字典:{key:value} 键值对
-
不可变类型
-
可以嵌套
-
键一般都是字符串,值可以是字符串、列表、字典
创建字典
-
li = [] # 空列表
-
str = "" # 空字符串
-
t = () # 空元组
-
d = {} # 空字典
类型转换
-
list() # 将字符串类型转换为列表、将元组类型直接原样转换为列表
-
str() # 将整数、浮点是转换为字符串类型
-
int() # 将字符串类型转换为整数【字符串中仅仅有数字,不能有字母】
-
float() # 将字符串类型转换为浮点数【字符串中仅仅有数字,不能有字母】
-
tuple() # 将列表类型转换为元组
-
dict() # 将对象转换为字典类型
创建字典的两种方法
#方法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)
1.2 字典的操作
-
len( ) 返回对象中键值对的数量
-
字典名[key] 返回字典中指定的key所对应 的值
-
字典名[key] = value 修改字典的中的某个键的值或者在字典中添加值
-
del 字典名[key] 删除字典中的值
-
clear 方法 删除字典中的数据
-
key in 字典名 检查字典中是否有这个指定的key【has_keys】
-
pop 方法 从字典中弹出一个键值对
-
copy方法 从字典中复制全部的键值对给一个新的变量
-
item方法 将字典中的键值对转换成元组/列表的一个一个的元素
-
keys 将字典的全部的键构成一个列表/元素
-
values 将字典的全部的值构成一个列表/元素
案例:让用户输入个人基本信息,包括 姓名、电话、住址、年龄,通过字典保存用户的数据信息,当用户输入q的时候,结束输入
结束输入后,打印显示全部的用户名,并要求选择一个名称
然后打印输出这个用户的全部信息,输出信息的格式:用户 xxx,电话是xxx,地址是xxx,年龄是xxx
{
"tom":{"tel":"136555","addr":"hebei","age":"25"},
"jerry":{"tel":"136555","addr":"hebei","age":"25"},
"jack":{"tel":"136555","addr":"hebei","age":"25"}
}
答案:
import sys
d1 = {}
li = []
while True:
name = input("请输入姓名或者按Q退出:")
name = name.lower()
if name == "q":
breakphoneNum = 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 += 1print("输入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))
二、遍历序列对象
遍历字符串方法
# type1
str = "abcd hallo world"
for var in str:
print(var)# type2
str = "abcd hallo world"
num_len = len(str)
for num in range(num_len):
print(str[num])
遍历列表方法
# type1
str = [1,2,8,11,7,3]
for var in str:
print(var)# type2
str = [1,2,8,11,7,3]
num_len = len(str)
for num in range(num_len):
print(str[num])# type3
str = [1,2,8,11,7,3]
num_len = len(str)
for num in range(num_len):
print(str.pop())# type4
str = [1,2,8,11,7,3]
num_len = len(str)
for num in range(num_len):
print(str[num])
del str[num]
遍历字典的方法
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