字典
基本用法
#用户名 密码 电话 住址
stus = [
['小黑','123','110','beijingshi',200],
['小黑','123','110','beijingshi',200],
['小黑','123','110','beijingshi',200],
['小黑','123','110','beijingshi',200],
['小黑','123','110','beijingshi',200],
['小黑','123','110','beijingshi',200],
]
stu_info = {
'username':'xiaohei',
'password':'123456',
'money':20,
'addr':'北京'
}
d1 = {} #创建空字典
d2 = dict() #创建空字典
#增加元素
d1['name'] = 'xiaopang'
d1['age'] = 18
d1.setdefault('class','双子座') #使用setdefault的方法,key已经存在了,不会修改原来key的值
print(d1)
d1.setdefault('age','38')
#修改
d1['name'] = 'xiaopang2' #不管是否存在,都修改原来的值
#取值
print(d1)
print(d1['age'])
print(d1.get('name'))
#取不存在的key
print(d1.get('sex')) #提示None
# print(d1['sex']) #出现报错
print(d1.get('money',0))
print(d1.keys()) #取到字典里所有的key
print(d1.values()) #取到字典里所以的value
#删除
# d1.pop('name')
# del d1['name']
# d1.popitem() #随机删除一个元素
# d1.clear() #清空
# print(d1)
#
# d2 = {'abc':'1234'}
# d1.update(d2)
print(d1)
字典循环取值
users = {
"meteor":'123456a',
"meteor1":'12345asd6',
"meteor2":'1234asd56',
"meteor3": '12345s6',
"meteor4": '123sf456',
"meteor5": '123sdf456',
"meteor6": '12345sdf6',
"meteor7": '12345s6',
"meteor8": '12345aadf6',
}
# 把账号加入到密码中,放在最前面 :username_ +密码
# 1.循环字典
# 2.把value修改成value = key_+value
# for k in users: #直接循环一个字典,取到的值是key
# value = users[k] #通过key取到value
# users[k] = '%s_%s'%(k,value)
# print(users)
#
for k,v in users.items():
users[k] = '%s_%s'%(k,v)
# print('%s==%s'%(k,v))
print(users)
字典的小例子
#1.计现有学生总共有多少金币
#2.找出金币小于100的学生姓名
#3.金币大于500的学生,扣去300金币
users = [
{
"id": 2,
"name": "矿泉水",
"sex": "未知",
"age": 38,
"addr": "天通苑123",
"grade": "双子座123",
"phone": "12123654311",
"gold": 34000
},
{
"id": 5668,
"name": "矿泉水",
"sex": "未知",
"age": 38,
"addr": "天通苑",
"grade": "双子座",
"phone": "12123654564",
"gold": 3202
},
{
"id": 5675,
"name": "矿泉水",
"sex": "未知",
"age": 38,
"addr": "天通苑",
"grade": "双子座",
"phone": "12188888888",
"gold": 800
},
{
"id": 5714,
"name": "矿泉水",
"sex": "未知",
"age": 38,
"addr": "天通苑",
"grade": "双子座",
"phone": "12123654529",
"gold": 100
},
{
"id": 6307,
"name": "矿泉水",
"sex": "未知",
"age": 38,
"addr": "天通苑",
"grade": "双子座",
"phone": "15901242111",
"gold": 200
},
{
"id": 6360,
"name": "矿泉水",
"sex": "未知",
"age": 38,
"addr": "天通苑",
"grade": "双子座",
"phone": "15901211111",
"gold": 100
},
{
"id": 8284,
"name": "矿泉水",
"sex": "未知",
"age": 38,
"addr": "天通苑",
"grade": "双子座",
"phone": "12123624957",
"gold": 100
},
{
"id": 8285,
"name": "矿泉水",
"sex": "未知",
"age": 38,
"addr": "天通苑",
"grade": "双子座",
"phone": "12123648939",
"gold": 100
},
{
"id": 8286,
"name": "矿泉水",
"sex": "未知",
"age": 38,
"addr": "天通苑",
"grade": "双子座",
"phone": "12123685106",
"gold": 100
},
{
"id": 8287,
"name": "矿泉水",
"sex": "未知",
"age": 38,
"addr": "天通苑",
"grade": "双子座",
"phone": "12123640038",
"gold": 100
},
{
"id": 8288,
"name": "矿泉水",
"sex": "未知",
"age": 38,
"addr": "天通苑",
"grade": "双子座",
"phone": "12123625688",
"gold": 100
},
{
"id": 8289,
"name": "矿泉水",
"sex": "未知",
"age": 38,
"addr": "天通苑",
"grade": "双子座",
"phone": "12123634296",
"gold": 100
},
{
"id": 8290,
"name": "矿泉水",
"sex": "未知",
"age": 38,
"addr": "天通苑",
"grade": "双子座",
"phone": "12123662942",
"gold": 100
},
{
"id": 8291,
"name": "矿泉水",
"sex": "未知",
"age": 38,
"addr": "天通苑",
"grade": "双子座",
"phone": "12123656275",
"gold": 100
},
{
"id": 8292,
"name": "矿泉水",
"sex": "未知",
"age": 38,
"addr": "天通苑",
"grade": "双子座",
"phone": "12123676705",
"gold": 100
},
{
"id": 8293,
"name": "矿泉水",
"sex": "未知",
"age": 38,
"addr": "天通苑",
"grade": "双子座",
"phone": "12123673379",
"gold": 100
},
{
"id": 8307,
"name": "矿泉水",
"sex": "未知",
"age": 38,
"addr": "天通苑",
"grade": "双子座",
"phone": "12123618698",
"gold": 100
},
{
"id": 8308,
"name": "矿泉水",
"sex": "未知",
"age": 38,
"addr": "天通苑",
"grade": "双子座",
"phone": "12123610039",
"gold": 100
},
{
"id": 8309,
"name": "矿泉水",
"sex": "未知",
"age": 38,
"addr": "天通苑",
"grade": "双子座",
"phone": "12123675980",
"gold": 100
},
{
"id": 8310,
"name": "矿泉水",
"sex": "未知",
"age": 38,
"addr": "天通苑",
"grade": "双子座",
"phone": "12123629672",
"gold": 100
},
{
"id": 8311,
"name": "矿泉水",
"sex": "未知",
"age": 38,
"addr": "天通苑",
"grade": "双子座",
"phone": "12123689607",
"gold": 100
},
{
"id": 8312,
"name": "矿泉水",
"sex": "未知",
"age": 38,
"addr": "天通苑",
"grade": "双子座",
"phone": "12123638612",
"gold": 100
},
{
"id": 8313,
"name": "矿泉水",
"sex": "未知",
"age": 38,
"addr": "天通苑",
"grade": "双子座",
"phone": "12123628322",
"gold": 100
},
{
"id": 8314,
"name": "矿泉水",
"sex": "未知",
"age": 38,
"addr": "天通苑",
"grade": "双子座",
"phone": "12123663283",
"gold": 100
},
{
"id": 8315,
"name": "矿泉水",
"sex": "未知",
"age": 38,
"addr": "天通苑",
"grade": "双子座",
"phone": "12123634676",
"gold": 100
},
{
"id": 8316,
"name": "矿泉水",
"sex": "未知",
"age": 38,
"addr": "天通苑",
"grade": "双子座",
"phone": "12123680540",
"gold": 100
},
{
"id": 9909,
"name": "矿泉水",
"sex": "男",
"age": 15,
"addr": "中国湖南",
"grade": "双子座",
"phone": "12345679999",
"gold": 100
},
{
"id": 10277,
"name": "矿泉水",
"sex": "男",
"age": 18,
"addr": "北京市昌平区",
"grade": "双子座",
"phone": "15249211246",
"gold": 100
}
]
#1.计现有学生总共有多少金币
#1.循环users的list
#2.从user的字典里取到gold的值
#3.把每次的值相加
all_gold = 0
for user in users:
all_gold += user.get('gold')
# all_gold = user.get('gold') + all_gold
print(all_gold)
#2.找出金币小于100的学生姓名
#1.循环users的list
#2.从user的字典里取到gold的值
#3.判断gold的值是否小于100
for user in users:
gold = user.get('gold')
if gold <=100:
print('%s的金币小于等于100'%user.get('name'))
#3.金币大于500的学生,扣去300金币,小于100的人。加上200金币
# 1.循环users的list
# 2.从user的字典里取到gold的值
# 3.判断gold的值,小于100的加200,大于500的减300
for user in users:
gold = user.get('gold')
if gold <=100:
user['gold'] = gold + 200
if gold > 500:
user['gold'] = gold - 300
print(users)
# a = [1,2,3,4,5,6,7,8,9,10]
# sum = 0
# for i in a:
# sum += i
# print(sum)
for user in users:
print(user)