第六章 字典
6.1 使用字典
- 字典使用一系列键-值对
- 每个键都与一个值相关联,使用键来访问与之相关联的值
- 键:数字、字符串
- 值:数字、字符串、列表、字典
alien_0={'color':'green','points':5}
6.2.1 访问字典中的值
- 要获取与键相关联的值,可依次指定字典名和放在方括号内的键
alien_0={'color':'green'}
print(alien_0['color'])
6.2.2 添加键-值对
- 字典是一种动态结构,可随时在其中添加键-值对。
- 要添加键-值对,可依次指定字典名,用方括号括起来的键和相关联的值。
alien_0={'color':'green'}
alien_0['1']='apple'
alien_0['2']='banana'
print(alien_0)
6.2.3 创建一个空字典
- 使用一对空的{}定义一个字典,再分行添加各个键-值对
alien_0={}
alien_0['1']='apple'
alien_0['2']='banana'
print(alien_0)
6.2.4 修改字典中的值
- 修改字典的值,可依次指定字典名,用方括号括起来的键对应要修改的值
alien_0={}
alien_0['1']='apple'
alien_0['2']='banana'
print(alien_0)
alien_0['1']='tomato'
print(alien_0)

6.2.5 删除键-值对
- 使用del语句将对应的键-值彻底删除
删除的键值对永远消失了
alien_0={}
alien_0['1']='apple'
alien_0['2']='banana'
print(alien_0)
del alien_0['1']
print(alien_0)

6.3 遍历字典
6.3.1 遍历所有的键-值对
- 使用对象.items()方法来实现
user={
    'name':'lyy',
    'age':13,
    'sex':'女',
      }
for k,v in user.items():
    print("key",k,"value",v)

6.3.2 遍历字典中的所有键
- 使用对象.keys()调用
user={
    'name':'lyy',
    'age':13,
    'sex':'女',
      }
for k in user.keys():
    print("key",k)

6.3.3 按顺序遍历字典的所有值
- 在for循环中对返回的键进行排序,使用sorted()函数
- 排序:数字从小到大,字母从a-z
user={
    'name':'lyy',
    'age':13,
    'sex':'女',
      }
for k in sorted(user.keys()):
    print("key",k)

6.3.4 遍历字典中的所有值
- 使用对象.values()来遍历字典中的值
user={
    'name':'lyy',
    'age':13,
    'sex':'女',
      }
for v in user.values():
    print("value",v)

- 使用set()去除重复项
user={
    'name':'lyy',
    'age':13,
    'sex':'女',
    'age1':13
      }
for v in set(user.values()):
    print("value",v)

6.4 嵌套
- 需要将一系列字典存储在列表中,或将列表作为值存储在字典中
6.4.1 字典列表
- 字典嵌入在列表中
user1={'name':'lyy','age':13}
user2={'name':'lyy','age':13}
user3={'name':'lyy','age':13}
users=[user1,user2,user3] #字典嵌在列表中
for user in users:
    print(user)
6.4.2 在字典中存储列表
- 列表嵌入到字典中
user1=["lili",15]
user2=["xixi",13]
users={1:user1,2:user2}#列表嵌入字典
for k,user in users.items():
    print(k,user)

6.4.3 在字典中嵌入字典
- 字典嵌入字典
user={
    'user1':{
        'name':"lili",
        'age':15
        },
    'user2':{
        'name':"xixi",
        'age':13
        },
  }
for k,v in user.items():
    print(k,v)
    for k1,v1 in v.items():
        print(k1,v1)

牛客刷题-元组(62-66)+字典(67-75)
1. 修改报名名单(63)

entry_form=('Niuniu','Niumei')
print(entry_form)
try:
   entry_form[1] = 'Niukele'
except:
    print('The entry form cannot be modified!')
2. 输出前三名学生的名字(64)
- tuple()可以将字符串数组转换为元组

a=input().split(" ")
a=tuple(a)
print(a[:3])
- 多个元组组合:+
3. 姓名和学号(69)

my_dict_1={'name': 'Niuniu','Student ID': 1}
my_dict_2={'name': 'Niumei','Student ID': 2}
my_dict_3={'name': 'Niu Ke Le','Student ID': 3}
dict_list=[]
dict_list.append(my_dict_1)
dict_list.append(my_dict_2)
dict_list.append(my_dict_3)
my_dict_v=[]
for my_dict in dict_list:
    print("{}'s student id is {}.".format(my_dict['name'],my_dict['Student ID']))
4.生成字典(72)
- dict()
- zip(数组1,数组2)

a=input().split(" ")
b=input().split(" ")
print(dict(zip(a,b)))
5. 使用字典计数

a=input()
b={}
for zimu in a:
    if zimu not in b: #判断key是否在
        b[zimu]=1
    else:
        b[zimu]+=1  #给value+1
print(b)

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号