一、字典
1、字典数据类型介绍
myCat = {"size":"fat","color":"gray"}
特征:
- 字典输入时带上{}
- 字典中每一个值是以键值对形式存在,先写键,再写值
2、字典与列表
列表索引必须是整数,字典索引可以是非整数(键值对)。
列表类似于数组,字典类似于map。
列表中项排序,字典中的项不排序,因此字典没有切片操作。
字典转列表时只将键放入列表中
['size', 'color']
3、判断键值是否在字典中
使用in来判断,若不在则报错KeyError
myCat = {"size":"fat","color":"gray"}
print("size" in myCat)
print("size" in myCat.keys())
print("fat" in myCat)
print("fat" in myCat.values())
print("x" in myCat)
4、keys(),values(),items()方法
三种方法返回类似列表的值,分别对应于字典的键、值和键-值对,可以使用list()方法转换成列表
该方法是查看型方法,返回的值只能用于读,不能用于写,可用于for循环中
myCat = {"size":"fat","color":"gray"}
for i in myCat.keys():
print(i)
print()
for j in myCat.values():
print(j)
print()
for k in myCat.items(): #返回的是包含键值对的元组类型
print(k)
for k,v in myCat.items():#两种写法
print(k,v)
5、get()方法
get(参数1,参数2)
参数1为要取得其值的键,参数2为当该键不存在时返回的备用值
myCat = {"size":"fat","color":"gray"}
print("my cat is %s"%myCat.get("size","unknown"))
print("my cat is %s"%myCat.get("sex","unknown"))
6、setdefault()方法
用来在一行内完成新键值对的添加 ---实现判断和添加的功能
setdefault(参数1,参数2)
- 参数1:检查的键
- 参数2:当该键不存在时要设置的值
如果该键存在,则返回键的值
7、美观输出
使用pprint模块中的pprint()方法,其中输出时键自动排序
import pprint
message = "It was a bright cold day in April, and the clocks were striking on the wall."
count = {}
for letter in message:
count.setdefault(letter, 0)
count[letter] += 1
print(count)
pprint.pprint(count)
8、嵌套的字典和列表
allGuests = {'Alice': {'apples': 5, 'pretzels': 12},
'Bob': {'ham sandwiches': 3, 'apples': 2},
'Carol': {'cups': 3, 'apple pies': 1}}
def totalBrought(guests, item):
numBrought = 0
for k, v in guests.items():
numBrought = numBrought + v.get(item, 0)
return numBrought
print('Number of things being brought:')
print(' - Apples ' + str(totalBrought(allGuests, 'apples')))
print(' - Cups ' + str(totalBrought(allGuests, 'cups')))
print(' - Cakes ' + str(totalBrought(allGuests, 'cakes')))
print(' - Ham Sandwiches ' + str(totalBrought(allGuests, 'ham sandwiches')))
print(' - Apple Pies ' + str(totalBrought(allGuests, 'apple pies')))