字典
字典是“键值对”的无序可变序列,字典中的每一个元素都是一个“键值对”
“键” 是任意的不可变数据,比如:整数、浮点数、字符串、元组。
但是:列表、字典、集合这些可变对象,不能作为“键”,且“键”不可重复
值可以是任意数据,可重复。
一个字典的定义方式:
a={'name':'gaoqi','age':'18','job':'programmer'}
字典的创建
1.通过{}、dict()来创建字典
a={'name':'gaoqi','age':'18','job':'programmer'}
b=dict(name='gaoqi',age='18',job='programmer')
a=dict([('name','gaoqi'),('age',18)])
c={} # 空的字典对象
d=dict() # 空的字典对象
2.通过zip()创建字典对象
k=['name','age','job']
v=['gaoqi','18','teacher']
d=dict(zip(k,v))
3.通过fromkeys创建值为空的字典
a=dict.fromkeys(['name','age','job'])
>>> a=dict.fromkeys(['name','age','job'])
>>> a
{'name': None, 'age': None, 'job': None}
>>> a={'name':'gaoqi','age':'18','job':'programmer'} >>> a {'name': 'gaoqi', 'age': '18', 'job': 'programmer'} >>> b=dict(name='gaoqi',age='18',job='programmer') >>> b {'name': 'gaoqi', 'age': '18', 'job': 'programmer'} >>> a=dict([('name','gaoqi'),('age',18)]) >>> a {'name': 'gaoqi', 'age': 18} >>> c={} >>> d=dict() >>> k=['name','age','job'] >>> v=['gaoqi','18','teacher'] >>> d=dict(zip(k,v)) >>> d {'name': 'gaoqi', 'age': '18', 'job': 'teacher'}
# 字典元素的访问
a={'name':'gaoqi','age':'18','job':'programmer'}
1.通过[键]获得"值"。
若键不存在,则抛出异常
>>> a={'name':'gaoqi','age':'18','job':'programmer'}
>>> a['name']
'gaoqi'
2.通过get()方法获得"值"。推荐使用。优点:指定键不存在,返回None;也可以设定
指定键不存在时默认返回的对象。推荐使用get()获取"值对象"
a.get('name')
>>> a.get('name')
'gaoqi'
>>> a.get('dddd')
>>> a
{'name': 'gaoqi', 'age': '18', 'job': 'programmer'}
>>> print(a.get('dddd'))
None
>>> a.get('dddd','不存在')
'不存在'
>>> a.items()
dict_items([('name', 'gaoqi'), ('age', '18'), ('job', 'programmer')])
# 字典元素的添加修改和删除
>>> a={'name':'gaoqi','age':'18','job':'programmer'}
>>> a['address']='西三旗1号院'
>>> a['age']=16
>>> a
{'name': 'gaoqi', 'age': 16, 'job': 'programmer', 'address': '西三旗1号院'}
>>> a={'name':'gaoqi','age':'18','job':'programmer'}
>>> b={'name':'gaoqi','money':'40000','sex':'男'}
>>> a.update(b)
>>> a
{'name': 'gaoqi', 'age': '18', 'job': 'programmer', 'money': '40000', 'sex': '男'}
3.字典中元素的删除,可以使用del();或者clear()删除
>> a={'name': 'gaoqi', 'age': 16, 'job': 'programmer', 'address': '西三旗1号院'}
>>> del(a['name'])
>>> a
{'age': 16, 'job': 'programmer', 'address': '西三旗1号院'}
>>> b=a.pop('age')
>>> b
16
4.popitem():随机删除和返回改键值对。字典是“无序可变序列”,因此没有第一个元素、最后
一个元素的概念;popitem弹出随机的项,因为字典并没有“最后元素”或者其他有关顺序的概念。
若想一个接一个的移除并处理项,这个方法就非常有效。
>>> a={'name':'gaoqi','age':'18','job':'programmer'}
>>> a.popitem()
('job', 'programmer')
>>> a
{'name': 'gaoqi', 'age': '18'}
>>> a.popitem()
('age', '18')
>>> a
{'name': 'gaoqi'}
# 序列解包
序列解包可以用于元组、列表、字典。序列解包可以让我们方便的对多个变量赋值。
x,y,z=(20,30,10)
>>> x,y,z=(20,30,10)
>>> x
20
>>> y
30
>>> z
10
[a,b,c]=[10,20,30]
>>> [a,b,c]=[10,20,30]
>>> a
10
>>> b
20
序列包用于字典时,默认是对"键"进行操作;如果需要对键值对操作,则需要使用
items();如果需要对“值”进行操作,则需要使用values();
s={'name':'gaoqi','age':'18','job':'programmer'}
>>> name,age,job=s
>>> name
'name'
>>> name,age,job=s.items()
>>> name
('name', 'gaoqi')
>>> name,age,job=s.values()
>>> name
'gaoqi
# 表格数据使用字典和列表存储,并实现访问
源代码
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('slary'))
# 打印表中所有人的薪资
for i in range (len(tb)):
>> > print(tb[1].get('salary'))
20000
>> > for i in range(len(tb)):
print(tb[i].get('salary'))
30000
20000
10000
# 打印表的所有数据
for i in range (len(tb)):
print(tb[i].get('name'),tb[i].get('age'),tb[i].get('salary'),tb[i].get('city'))
print(tb[i].get('name'), tb[i].get('age'), tb[i].get('salary'), tb[i].get('city'))
高小一
18
30000
北京
高小二
19
20000
上海
高小五
20
10000
深圳
# 1.使用{}创建集合对象,并使用add()方法添加元素
>>> a={3,5,7}
>>> a
{3, 5, 7}
>>> a.add(9)
>>> a
{9, 3, 5, 7}
# 2.使用set(),将列表、元组等可迭代对象转成集合。如果原来数据存在重复数据,则只保留一个。
>>> a={3,5,7}
>>> a
{3, 5, 7}
>>> a.add(9)
>>> a
{9, 3, 5, 7}
>>> a =['a','b','c','d']
>>> b=set(a)
>>> b
{'a', 'd', 'c', 'b'}
3.remove()删除指定元素;clear()清空整个集合
a.={10,20,30,40,50}
a.remove(20)
>>> a={10,20,30,40,50}
>>> a.remove(20)
>>> a
{40, 10, 50, 30}
?
# a=input('请输入一个小于10的数字:')
# if int(a)<10:
# print(a)
# 条件表达式
#
# b = []
# if not b:
# print('空的列表是false')
# c = "True" # 非空字符串
# if c:
# print('c')
# d=10
# if d:
# print("3<d<10")
# if 3<d<100:
# print(d)
# # 条件表达式中不能有赋值操作符“=”
# s = input('请输入一个数字:')
# if int(s)<10:
# print(s)
# # 测试三元条件运算符
# print("s是小于10的数字" if int(s)<10 else "s是大于等于10的数字")
# 多分支结构
# score =int(input("请输入分数:"))
# grade = ""
# if score<60:
# grade = "不及格"
# elif score<80: # 60~80之间
# grade = "良好"
# else:
# grade = "优秀"
# print("分数是{0},等级是{1}".format(score,grade))
score = int(input("请输入一个分数"))
if score>100 or score<0:
score = int(input("输入错误!请重新输入一个在0-100之间的数字"))
else:
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))
print("**************************************************")
score = int(input("请输入一个分数"))
degree = "ABCDE"
num = 0
if score>100 or score<0:
print("请输入一个0-100的分数")
else:
num = score//10
if num<6:
num=5
print(dgree[9-num])
# while循环
# 利用while循环打印从0-10的数字。
# num = 0
# while num <=100:
# print(num,end="\t")
# num+=1
# print("***************************")
num2 = 0
sum_all = 0
while num2<=100:
sum_all =sum_all + num2
num2 +=1
print("1-10所有数的累加:",sum_all)
|