person = {'name': 'zhangsan', 'age': 18, 'addr': 'Beijing'}
# 特殊在列表和元组是单一的数据,但是字典的键值对的形式
# 第一种遍历方式:直接for in 循环
for x in person: #for in循环获取的是key
print(x, '=', person[x])
# 第二种方式:获取到所有的key,然后再遍历key, 根据key获取value
print(person.keys()) # dict_keys(['name', 'age', 'height'])
for k in person.keys():
print(k, '=', person[k])
# 第三种方式:获取到所有value,只有值,没有key
for v in person.values():
print(v)
# 第四种方式:
# print(person.items()) # dict_items([('name', 'zhangsan'), ('age', 18), ('addr', 'Beijing')])
# for item in person.items(): # 列表里的元素是元组,把元组当做整体进行遍历
# print(item[0], '=', item[1])
for k, v in person.items():
print(k, '=', v)
字典的练习
chars = ['p', 'a', 'b', 'x', 'd', 'p', 'a', 'm', 'q', 't', 'p', 'a', 't', 'c']
char_count = {} # 设置一个字典
for char in chars:
if char in char_count:
print('字典里面已经有字符了%s' % char)
char_count[char] += 1
else:
char_count[char] = 1
print('字典里面没有这个字符%s' % char)
print(char_count)
char_count2 = {}
for char in chars:
if char not in char_count2:
char_count2[char] = chars.count(char)
print(char_count2)
# print(words.count('a'))
vs = char_count.values()
# 取最大数可以使用内置函数max
max_count = max(vs)
for k, v in char_count.items():
if v == max_count:
print(k)
字典的练习
persons = [
{'name': 'zhangsan', 'age': 18},
{'name': 'lisi', 'age': 20},
{'name': 'wangwu', 'age': 19},
{'name': 'jerry', 'age': 21}
]
# 让用户输入姓名,如果姓名已经存在,提示用户;如果姓名不存在,继续输入年龄,存入到列表
x = input('请输入您的姓名:')
for person in persons:
# if name in person: # in 运算符,如果直接用在字典上,是用来判断key是否存在,而不是value
if person['name'] == x:
print('您输入的名字存在')
break
else:
print('名字不存在')
# 创建一个新的字典 new_person
new_person = {'name': x}
y = int(input('请输入你的年龄:'))
new_person['age'] = y
##把这个新的数据存储到 persons 列表里面
persons.append(new_person)
print('用户添加成功')
print(persons)
字典的练习
dict1 = {"a": 100, "b": 200, "c": 300}
dict2 = {}
# for k, v in dict1.items():
# dict2[v] = k
# print(dict2) #{100: 'a', 200: 'b', 300: 'c'}
dict1 = {v: k for k, v in dict1.items()} # 字典推导式
print(dict1) #{100: 'a', 200: 'b', 300: 'c'}
#{100:"a", 200:"b", 300:"c"}