一:列表循环
names=['哈哈','嘿嘿']
while(False):...
i=0#元素下标
while i<len(names):
print(names[i])
i+=1 #i=i+1
while(False):...
i=0#元素下标
while i<len(names):
print(names[i])
i+=1 #i=i+1
如图:
for 循环做法
1.
for i in range(len(names)):
print(names[i])
2.
for i in names:
print(i)
"1,2,5,7"#是 以split(",")来分割,返回值 是列表且数据类型为整数类型
eval()将元组、字典、列表类型的字符串 转换 为元组、字典、列表 没有标识默认为元组
可以把list,,tuple,dict,和string互相转换。
即:list:将元组转换为列表 tuple:将列表转换为元组 dict:字典 string:字符串
eval()将元组、字典、列表类型的字符串 转换 为元组、字典、列表 没有标识默认为元组
可以把list,,tuple,dict,和string互相转换。
即:list:将元组转换为列表 tuple:将列表转换为元组 dict:字典 string:字符串
r = '23,5,6'
r1 = eval(r)
print(r1[0])
print(type(r1[0]))
print(type(r1))
r1 = eval(r)
print(r1[0])
print(type(r1[0]))
print(type(r1))
如图:
将字符串字典转换成字典
r = "{'a':1,'b':2}"
r1=eval(r)
print(r)
print(type(r1))
如图:
#将元组转换str
r = (1,2,3)
r1 = str(r)
print(r)
print(type(r1))
二:元祖
python中:元组和列表相似,不同的是:元组的元素不可以修改。
元组使用小括号,列表使用方括号。
创建一个元组:
1.
num = (1,2,3,4)
print(num)
2.
t = (1,2,'hah',[5,5,8],'你好')
print(t)
print(len(t))
print(dir(t))
即:在创建的时候 不可改变
r = (1,2,3)
r1 = str(r)
print(r)
print(type(r1))
二:元祖
python中:元组和列表相似,不同的是:元组的元素不可以修改。
元组使用小括号,列表使用方括号。
创建一个元组:
1.
num = (1,2,3,4)
print(num)
2.
t = (1,2,'hah',[5,5,8],'你好')
print(t)
print(len(t))
print(dir(t))
即:在创建的时候 不可改变
试一下:
t.__add__(55)
print(t)
t.__add__(55)
print(t)
即:显示说 只可以调用 不能改变
可变和,不可变
1.可变
a = 1
b = 1
print(id(1))#即 id:打印内存地址
print(id(a))
print(id(b))
id一样如图:
2.不可变
t = (1,2,'hah',4,[5,5,8],'你好')
print(t[1])
# t[4]=3#即:错误的
# 正确的:
t[4][1] = 3
如图:
#如果想要改变t里面下标为1的值:
t[1][0] = 3#系统报错
print(t)
即:不可改变就是,t里面的下标值不可改变
如果下标为’值中值‘如:[5,5,8] 则只可改变中括号里面的值
增加 删除 改变均不可以
逐个赋值 一一对应 即:有多少个变量 就声明多少个值
t=(1,2,'haha')
a,b,c=t
print(a,b,c,)
查看是否是元组
a = (88,)
print('a:',a)
print('a:',type(a))#即:a里面 不加逗号为数字 加上为元组
访问 使用切片
for i in range(len(t)):
print(t[i])
for i in t:
print(i)
print(t[::-1])
加法
t1=t*3
print(t1)
t2=t1+t
print(t2)
for i in range(len(t)):
print(t[i])
for i in t:
print(i)
print(t[::-1])
加法
t1=t*3
print(t1)
t2=t1+t
print(t2)
乘法
t=(1,2,3,4,5,10,8)
t1=t*3
print(t1)
print(max(t))#最大的值
print(min(t))#最小的值
t=(1,2,3,4,5,10,8)
t1=t*3
print(t1)
print(max(t))#最大的值
print(min(t))#最小的值
如图:
tuple:将列表转换为元组
#创建一个元组 格式的数据格式 内容就是小括号里面的
tu=tuple([1,2,3,4,5])
print(tu)
tu1=(tu[:])
print(tu1)
元组完
三:字典
字典是一种 可变容器模型,且可储存任意类型的对象。
每个键值用(:)分割 键必须是唯一的,但值则不必。
d = {key1:value1,key2:value2}
值可以取任何数据类型,但键必须是不可变的如:字符串、数字、元组。
一般用字符串
stus={'小明':18,'小红':20}
dit={'爱好':['吃','美食']}
通过key 进行操作
stus['老王']=20
stus['老王']=25
#创建一个元组 格式的数据格式 内容就是小括号里面的
tu=tuple([1,2,3,4,5])
print(tu)
tu1=(tu[:])
print(tu1)
元组完
三:字典
字典是一种 可变容器模型,且可储存任意类型的对象。
每个键值用(:)分割 键必须是唯一的,但值则不必。
d = {key1:value1,key2:value2}
值可以取任何数据类型,但键必须是不可变的如:字符串、数字、元组。
一般用字符串
stus={'小明':18,'小红':20}
dit={'爱好':['吃','美食']}
通过key 进行操作
stus['老王']=20
stus['老王']=25
#覆盖 即:如果第一个stus存在 那就是覆盖,不存在就是添加
print(stus)
删除
del stus['老王'] #即:如果没有键值 系统抛异常
print(stus)
删除
del stus['老王'] #即:如果没有键值 系统抛异常
当要删除的key 不存在时 系统不会抛异常 会显示‘没有此函数’
ret=stus.pop('老王','没有此函数')
print(ret) #返回‘老王’的 值 即:ret 返回被删除的值
stus={'小明':18,'小红':20}
使用【 .get:获取 】的好处
print('小明年龄:',stus.get('小明','不存在'))
即:如果没有’小明‘则显示’不存在‘系统不会抛异常
print('小红年龄:',stus['小红5'])
ret=stus.pop('老王','没有此函数')
print(ret) #返回‘老王’的 值 即:ret 返回被删除的值
stus={'小明':18,'小红':20}
使用【 .get:获取 】的好处
print('小明年龄:',stus.get('小明','不存在'))
即:如果没有’小明‘则显示’不存在‘系统不会抛异常
print('小红年龄:',stus['小红5'])
即:如果没有’小红5‘系统抛异常
知识延伸
phones={'110':'小明','119':'火警','911':'火警'}
print('****************************************')
while(True):
print('========通讯录管理系统========')
print('1.增加姓名和手机号')
print('2.删除行姓名')
print('3.修改手机')
print('4.查询所有用户')
print('5.根据姓名查找手机号')
print('6.退出')
print('======================================')
i=int(input('请选择:'))
if(i==1):
name=input('请输入姓名:')
phone=input('请输入电话号码:')
while phone in phones:
phone=input('电话已存在,请重新输入电话:')
phones[phone]=name
print('录入成功')
elif i==2:
name = input('请输入姓名:')
for item in phones.items():
if item[1].__eq__(name):
phones.pop(item[0])
print('删除成功')
break
else:
print('名字不存在')
elif i==4:
for key in phones.keys():
print('电话:',key+'姓名'+phones.get(key))
print('输出完毕')
elif i==3:
phone = input('请输入电话号:')
if phone in phones.keys():
new_phone = input("请输入新的电话号:")
while new_phone in phones.keys():
new_phone = input('电话已存在,请重新输入:')
name=phones.pop(phone)
phones[new_phone]=name
print('更新成功')
else:
print('电话不存在')
elif i == 5:
name = input('请输入姓名:')
for item in phones.items():
if item[1].__eq__(name):
print('姓名:'+item[1]+'电话'+ item[2])
else:
print('名字不存在')
elif i==6:
print('谢谢使用')
break
while(True):
print('========通讯录管理系统========')
print('1.增加姓名和手机号')
print('2.删除行姓名')
print('3.修改手机')
print('4.查询所有用户')
print('5.根据姓名查找手机号')
print('6.退出')
print('======================================')
i=int(input('请选择:'))
if(i==1):
name=input('请输入姓名:')
phone=input('请输入电话号码:')
while phone in phones:
phone=input('电话已存在,请重新输入电话:')
phones[phone]=name
print('录入成功')
elif i==2:
name = input('请输入姓名:')
for item in phones.items():
if item[1].__eq__(name):
phones.pop(item[0])
print('删除成功')
break
else:
print('名字不存在')
elif i==4:
for key in phones.keys():
print('电话:',key+'姓名'+phones.get(key))
print('输出完毕')
elif i==3:
phone = input('请输入电话号:')
if phone in phones.keys():
new_phone = input("请输入新的电话号:")
while new_phone in phones.keys():
new_phone = input('电话已存在,请重新输入:')
name=phones.pop(phone)
phones[new_phone]=name
print('更新成功')
else:
print('电话不存在')
elif i == 5:
name = input('请输入姓名:')
for item in phones.items():
if item[1].__eq__(name):
print('姓名:'+item[1]+'电话'+ item[2])
else:
print('名字不存在')
elif i==6:
print('谢谢使用')
break
字典遍历 len(d):
phones={'110':'小明','119':'火警','911':'火警'}
print(len(phones))
遍历key:
for key in phones.keys():
print(key)
遍历value:
for value in phones.values():
print(value)
for item in phones.items():
print(item[0],item[1])
phones={'110':'小明','119':'火警','911':'火警'}
print(len(phones))
遍历key:
for key in phones.keys():
print(key)
遍历value:
for value in phones.values():
print(value)
for item in phones.items():
print(item[0],item[1])
如图(红色区域):
字典特性:
1.不能出现相同的key,如果出现 即:后一个覆盖前一个
2.key的值是不可变的,所以可以用数字,字符串和元组充当,不能用列表
字典和列表的区别:
1.字典:
优点:
查找和插入的速度极快,不会随着key的增加而变慢;
缺点:
需要占用大量的内存,内存浪费多。
2.列表:
缺点:
查找和插入的时间随着元素的增加而增加
优点:
占用空间小,浪费内存很少。
字典是支持无线嵌套的:
citys = {
'北京':{
'朝阳':['三里屯','五元桥'],
'海淀':['首都师大','花园桥']
},
'河北':{
'张家口':['251','第一附属医院'],
'宣化':['建国街','南大街']
}
}
for city in citys.keys():
print(city)
for qu in citys.get(city).keys():
print('\t'+qu)
print('\t\t'+str(citys.get(city).get(qu)))
citys = {
'北京':{
'朝阳':['三里屯','五元桥'],
'海淀':['首都师大','花园桥']
},
'河北':{
'张家口':['251','第一附属医院'],
'宣化':['建国街','南大街']
}
}
for city in citys.keys():
print(city)
for qu in citys.get(city).keys():
print('\t'+qu)
print('\t\t'+str(citys.get(city).get(qu)))
如图:
将一个列表的数据复制到另一个列表中:
num = {'哈哈':15,'啦啦':17}
dox = num.copy()
print(dox)
print(type(dox))
dox = num.copy()
print(dox)
print(type(dox))
如图:
# 转类型:
print(str(dox))
print(type(str(dox)))
字典的内置函数:
len()#获取长度
str()#转译成字符串
type()#获取数据类型
clear()#清空
copy()#复制 ’值‘
key() value() item()
pop(key)#删除一个值,如果没有key 则抛异常即:pop(key,default)不抛异常
get()#添加
len()#获取长度
str()#转译成字符串
type()#获取数据类型
clear()#清空
copy()#复制 ’值‘
key() value() item()
pop(key)#删除一个值,如果没有key 则抛异常即:pop(key,default)不抛异常
get()#添加