python 中字典 dict{}
定义字典的方法
1.使用dict方法把列表转换成字典
list1 = [('id',1),('name','xiaochen'),('age',18)]
dic = dict(list1)
print(dic) # 执行结果{“id" : 1, "name" : ‘xiaochen", "age" : 18}
print(type(dic)) 执行结果:<class "dict">
2直接使用{}定义字典
dic = {'id':1,'name':'xiaochen','age':18,'class':202113}
print(dic) #执行结果{'id': 1, 'name': 'xiaochen', 'age': 18, 'class': 202113}
print(type(dic)) #执行结果<class 'dict'>
# 3定义一个空字典
dic = {}
print(dic)
print(type(dic)) #执行结果<class 'dict'>
字典中常见的函数
往字典中新增加键值对
1.通过赋值的方法新增键值对
dic = {'id':1,'name':'xiaochen','age':18,'class':202113}
dic['sex'] = '男' #新增一个原字典中不存在的键值对
print(dic) #执行结果{'id': 1, 'name': 'xiaochen', 'age': 18, 'class': 202113, 'sex': '男'}
dic['age'] = 20 新增一个原字典中存在的键值对,则原字典中键对应的值被覆盖
print(dic) #执行结果{'id': 1, 'name': 'xiaochen', 'age': 20, 'class': 202113, 'sex': '男'}
2通过使用setdefault()函数新增键值对
dic = {'id':1,'name':'xiaochen','age':18,'class':202113}
dic.setdefault('sex','男') 新增原字典中不存在的键值对
print(dic) #执行结果{'id': 1, 'name': 'xiaochen', 'age': 18, 'class': 202113, 'sex': '男'}
dic.setdefault('age',20) 新增原字典中不存在的键值对 添加键值对的操作不生效
print(dic) #执行结果{'id': 1, 'name': 'xiaochen', 'age': 18, 'class': 202113, 'sex': '男'}
python字典删除键值对
注意:字典中删除键,会默认把该键对应的值一起删除
1.使用del方法删除
del dic['class']
print(dic) #执行结果{'id': 1, 'name': 'xiaochen', 'age': 18}
2.使用pop()函数删除
print(dic.pop('class')) #使用pop()函数删除键时,可以打印出删除键对应的值
print(dic) #执行结果{'id': 1, 'name': 'xiaochen', 'age': 18}
3.清空字典中的键值对claer()
dic.clear()
print(dic) #执行结果:{}
dic.setdefault('sex') #注意使用setdefault()添加键值对,如果不给具体的值,则会自动给出一个默认值None
print(dic) #执行结果 {'id': 1, 'name': 'xiaochen', 'age': 18, 'class': 202113, 'sex': None}
4.popitems()随机删除字典中的键值对,与pop()的区别即是函数不用给定参数 --默认删除字典中最后一对键值对
dic.popitem()
print(dic)
取出字典中的键值对
1.取出字典中所有的键和值--直接使用keys()和values()方法
dic = {'id':1,'name':'xiaochen','age':18,'class':202113}
print(dic.keys()) 执行结果:dict_keys(['id', 'name', 'age', 'class'])
print(type(dic.keys()))
print(dic.values()) #执行结果:dict_values([1, 'xiaochen', 18, 202113])
字典遍历--使用for循环语句
for k in dic:
print(k,dic[k])
# 3.字典遍历--使用for循环配合items()函数
for k,v in dic.items():
print(k,v)
# 4.单独取出字典中的某个键所对应的值 --使用字典名[键名]
print(dic['name']) #执行结果xiaochen
print(dic['city']) #报错KeyError: 'city'
5.使用get()方法获取字典中某个键对应的值
print(dic.get('id')) 执行结果为:1
print(dic.get('city')) 3执行的结果为:None
dic = {'id':1,'name':'xiaochen','age':18,'class':202113}
判断字典中是否存在某个键:__contains__() 执行结果通常为True或False
print(dic.__contains__('name')) #执行结果True 非常重要
print(dic.__contains__('sex')) #执行结果为:False
合并二个字典--update()函数
dic = {'sex':'男'}
dic.update(dic1)
print(dic) #执行结果;{'id': 1, 'name': 'xiaochen', 'age': 18, 'class': 202113, 'sex': '男'}
fronkeys()给字典制定新的键值对
print({}.fromkeys(['id','name'],'xiaochen')) #执行结果{'id': 'xiaochen', 'name': 'xiaochen'}
dic1 = {}.fromkeys(['name'],'xiaochen')
print(dic1) #执行结果{'name': 'xiaochen'}
username = input ('请输入用户名')
if username =='admin'
print('管理员上线')
elif username == 'dcs' ;
printv(“VIP用户上线”)
elif username == 'xiaochen':
print('穷人上线')
else:
print('普通用户上线')
#多分支语句
#语法结构:
#if 条件1:
代码块
elif 条件2
代码块
elif 条件3:
代码块
else:
代码块
需求:用python语言编写一个用户登入的简单场景,假设系统已经存在的用户和密码为;admin,123456
username = input('请输出用户名;')
if username == 'admin'
password = input('请输入用户名密码:')
if password = '123456'
print('登入成功')
else;
print('密码错误,请从新输入!')
else:
print('用户名不存在,请重新输入')
while循环语句
语法格式
while 条件:
代码块
n = 0
while n<10:
print(n)
n+=1 #执行结果: 0 ,1,2,3,4,5,6,7,8,9
#需求
1. 打印出1-10之间的自然数
n = 1
while n<11
print(n)
n+=1
4.打印出1-10之间的自然数 之和
n = 1
m =0
while n<11:
m+=n
n+=1
print(m)
5.打印出1-10之间的奇数之和
n = 1
m = 0
while n<11:
m+=n
n+=2
print(m)
for 循环语句
语法结构:
for 变量名in
代码
or i in range(1, 10): # range()函数:专门用来遍历数据序列结构的函数
print(i, end=' ') # end= ’ ‘python3版本的横向打印
1.打印1 - 10奇数
for i in range(1,11,2):
print(i,end=' ')
2.打印1-10偶数
for i in range(2,11,2):
print(i,end=' ')
3.打印出1-10之间的奇数之和
res = 0
for i in range(1,11,2):
# print(i,end=' ')
res = res+i
print(res) #执行结果为1 3 5 7 9 (总数等于25)
continue语句: 作用是结束当前循环,进入下一个循环
需求;打印出数字1,2,3,4,5,7,8,9,10
for i in range(1,11):
if i == 6:
continue
else:
print(i,end=' ') #执行的结果是1 2 3 4 5 7 8 9 10
#break语句:终止达到条件之后的所有循环
for i in range(1,11):
if i == 6:
break
else: print(i,end= ' ') 执行的结果是1 2 3 4 5
练习1.
1、求出1 / 1 + 1 / 3 + 1 / 5⋯⋯+1 / 99的和
res = 0
for i in range(1,100,2):
print(i,end=' ')
res = res+1/i
print(res)
2、用循环语句,计算2 - 10之间整数的循环相乘的值。
n = 2
# # m = 1
# # while n<11:
# # m*=n
# # n+=1
# # print(m)
# # 2:
# # res =1
# # for i in range(2,11):
# # res *=i
# # print(res)
# #
#
# # #3、用for循环打印九九乘法表
# # i,j=1,1
# # for i in range(1,10):
# # # print()
# # for j in range(1,i+1):
# # a=i*j
# # print(f'{j}x{i}={a}',end=' ')
# # print(" " )
# #
#
# #4、求每个字符串中字符出现的个数如:helloworld
# # str1= 'helloworld'
# # 方法1
# # set1 = set(str1)
# # for i in set1:
# # a = str1.count(i)
# # print('字符%s出现的次数为%d'%(i,a))
# # 方法2
# dic = {}
# for i in str1:
# if i in dic:
# dic = dic+1
# else:
# dic = 1
# for k,v in dic.items():
# print('字符%s出现的次数为%d'%(k,v))
#5、实现把字符串str = "duoceshi"中任意字母变为大写(用input语句实现)
str1 = "duoceshi"
str2=list(str1)
D U O C E S H I
0 1 2 3 4 5 6 7
print(type(str1))
num=input('duoceshi')
num1=int(num)
str2=str1[num1]
print(str2.upper())
第2 中方法
str1 ="duoceshi"
s = input("请出入要改变的字符:")
for i in s:
if i in str1:
a=i.upper()
str1 = str1.reploce(i,a)
print(str1)
6、求出1900 - 2017年的闰年?
普通闰年:能被4整除但不能被100整除的年份为普通闰年。(如2004年就是闰年,1999年不是闰年)
世纪闰年:能被400整除的为世纪闰年。(如2000年是世纪闰年,1900年不是世纪闰年)
for i in range(1900,2018):
if i%4==0 and i%100 !=0:
print(i)
方法2
for j in range(1900,2018)
if j % 4 ==0 and j %100 !=0
print(j,end=' ')
elif j %400 ==0:
print(j,end=' ')
7、分别打印100以内的所有偶数和奇数并存入不同的列表当中
for i in range(1,101,2):
print(i,end=' ')
for i in range(2, 101, 2):
print(i,end=' ')
正确方法
even = []
odd = []
for i in range(0,101):
if i % 2==0:
even.append(i)
else:
odd.append(i)
print(even)
print(odd)
8、请写一段Python代码实现删除一个list = [1, 3, 6, 9, 1, 8]# 里面的重复元素
list = [1,3,6,9,1,8]
l = []
for i in list1:
if i in l:
continue
else:
l.append(i)
print(l)
9、将字符串类似:"k:1|k3:2|k2:9|...|kn:m", 处理成key:value或json格式, 比如
{"k": "1", "k3": "2"}
str1 = 'k:1|k3:2|k2:9|'
dic={}
a = str1.split('|')
for i in a:
b= i.split(':')
dic.setdefault(b[0],b[1])
print(dic)
10、把字符串user_controller转换为驼峰命名UserController
str1 = "user_controller"
res = ' '
s = str1.split(('_'))
for i in s:
a = i.capitalize()
res +=a
print(res)
11、冒泡排序
给一组无规律的数据从大到小或从小到大进行排序如:list = [2, 6, 9, 10, 18, 15, 1]
list =[2,6,9,10,18,15,1]
for i in range(len(list1)): # (len()函数,用来获取列表或者字符串的长度)
for j in range(i+1,len(list1)):
if list1>list1[J]:
list1,list1[j]=list1[j],list1 #冒泡排序中的重要步骤,位置互换
12、分析以下数字的规律, 1 # # print(list1)
1 2 3 5 8 13 21 34用Python语言编程实现输出
l = []
for i in range(9): #for循环中取出的i作为列表中元素的索引位
if i ==0:
l.append(1)
elif i == 1:
l.append(1)
else:
l.append(l[i-1]+l[i-2])
print(l)
|
|