字典
字典是“键值对”的无序可变序列,字典中的每个元素都是一个“键值对”,包含:“键 对象”和“值对象”。可以通过“键对象”实现快速获取、删除、更新对应的“值对象”。
字典的创建:1:a = {'name':aaa','age':111,'job':'worker'}
2:b = dict(name='aaa',age=11,job='worker')
3:a = dict( [ ("name", "aaa"), ("age", "11") ] )
4:c = {} 或者c = dict() 空的字典对象
通过 zip()创建字典对象:
k = ['name','age','job'] , v = ['aaa',11,'worker ']
d = dict(zip(k,v)) d {'name': 'gaoqi', 'age': 18, 'job': 'techer'}
用fromkeys创建值为空的字典:
a = dict.fromkeys( ["name", "age", "job"] )
a = {"name": None, "age": None, "job":None}
字典元素的访问
1.通过键获得值a = {'name':aaa','age':111,'job':'worker'},a["name"]得到"aaa",类似于列表的访问。
2.通过a.get()方法获得值:a.get('name')
3.列出所有的键值对:a.items(),输入后会得到:dict_items([('name', 'qqq"), ('age', 11), ('job', 'programmer')])
4. 列出所有的键,列出所有的值: a.keys() -------dict_keys(['name', 'age', 'job'])
a.values()------dict_values(['qqq', 11, 'programmer'])
5. len() 键值对的个数
字典元素添加、修改、删除
1. 给字典新增“键值对”:如果“键”已经存在,则覆盖旧的键值对;如果“键”不存在, 则新增“键值对”。a = {'name':aaa','age':111,'job':'worker'},可以用a["x"] = 1添加新的值,用a["age"] = 1覆盖原来的值,最终结果:a = {'name':aaa', 'age':1, 'job':'worker', "x": 1}
2. 使用 update()将新字典中所有键值对全部添加到旧字典对象上。如果 key 有重复,则直接覆盖
a = {'name':aaa','age':111,'job':'worker'}, b ={"x": 1}, a.update(b)会得到:a = {'name':aaa', 'age':111, 'job':'worker', "x": 1}
3. 字典中元素的删除,可以使用 del()方法;或者 clear()删除所有键值对;pop()删除指定 键值对,并返回对应的“值对象”:del(a['name'])
4. popitem() :随机删除和返回该键值对,a.popitem()
表格数据使用字典和列表存储,并实现访问
r1 = {"name":"小一","age":18,"salary":30000,"city":"北京"}
r2 = {"name":"小二","age":19,"salary":20000,"city":"上海"}
r3 = {"name":"小五","age":20,"salary":10000,"city":"深圳"}
tb = [r1,r2,r3]
可以通过print(tb[1].get("salary"))获得第二个人的薪资,可以用一个for循环打印所有人的数据。
for i in range(len(tb)):
print(tb[i].get("name"),tb[i].get("age"),tb[i].get("salary"),tb[i].get("city"))
集合创建和删除
a = {3,5,7},可以用add来增加元素,例如a.add(1),得到a = {3, 5, 7, 1}
使用 set(),将列表、元组等可迭代对象转成集合。如果原来数据存在重复数据,则只保留一个:a = ['a','b','c','b],b = set(a),b的最终结果:{'b', 'a', 'c'}
remove()删除指定元素;clear()清空整个集合
并集 | ;交集&;差集 -
控制语句
题目:根据成绩来评分ABCDE
score = int(input("请输入一个在0-100之间的数字:"))
grade = ""
while score>100 or score<0:
score = int(input("输入错误,请输入一个在0-100之间的数字:"))
if score>90:
grade ="A"
elif score>80:
grade = "B"
elif score>70:
grade = "C"
elif score > 60:
grade = "D"
else:
grade = "E"
print("分数为{0},成绩为{1}".format(score,grade))
score = int(input("请输入一个在0-100之间的数字:"))
degree = "ABCDE"
if score >100 or score<0:
score = int(input("输入错误,请输入一个在0-100之间的数字:"))
else:
num = score//10
if num<6:
num = 5
elif num == 10:
num = 9
print("分数为{0},成绩为{1}".format(score,degree[9-num]))