一、列表:处理多个数据 [ list ]
1.创建列表:中括号括起来的,不同的数据项由逗号隔开,数据项可以是任意数据类型2.列表切片:同字符串切片
list1=[‘小明’,’xiaohua’,10,65,’age’,’name’]
print(list[1]) 输出第二位
print(list[-1]) 输出最后一位
print(list[:]) 输出全部
print(list[:2]) 输出前两位
print(list[1:5:1]) 输出1-4
print(list[-1:-4:-1]) 输出-1到-3
print(list[::]) 输出全部
print(list[::-1]) 倒序显示
3.增删改查(动态数组):
增:list.append(“”) 尾部追加
list.insret(位置下标,““)
注:list1.insert(0,’html’) #在下标0处插入,原有位置和后面位置的项向后挪一位。数组和数组不能相减,列表与列表可以相加。
改:list[i]=”修改后字符” 即通过下标修改内容
删:del list1[2]
.pop():把最后一个删除,也可以指定删除的下标
.remove(“”)删除括号中的内容,但只删除一次
del lista[0] 删除第一位
del lista 删除lista列表
查: list1=['a','b','c','d','e']
print(list1.index('a')) 返回查找到的下标
print('a' in list1) 返回bool值
print('a' not in list1) 返回bool值
4.列表的函数
1.长度len( )
print(len(listt1)) 输出为5
2.最大值max( ),最小值min( );字母以ASCII为依据
print(max(listt1)) 输出为e
print(min(listt1)) 输出为a
3.将元组转换为列表list( )
print(list(listt1)) 输出为['a','b','c','d','e']
4.增加到列表尾部append( )
5.insert(index,obj)插入到列表相应下标位置,超出范围则在尾部添加
6.extend()列表1.extend(列表2),是把列表2迭代后追加到列表1
7.pop()默认删除最后一个,也可以指定删除的下标,返回删除值
8.remove()删除括号中的内容,但只能删除一次
9.reverse()反向列表中的元素
list2.reverse();
print(list2) 输出为['e','d','c','b','a']
10.sort([func])排序,默认升序
list3=[5,6,4,2,9]
list3.sort()
print(list3) 输出为[2,4,5,6,9]
11.clear()清空列表
list1.clear()
print(list1) 输出为[]
12.copy()复制列表,在内存中又开辟了一个空间;通过等号复制副本,在内存中指向原来的地址
list4=list1.copy()
print(list4) 输出为['a','b','c','d','e']
13.eval()将元组、字典、列表类型的字符串转为元组、字典、列表,可以把list,tuple,dict和string相互转化
1)字符串转换为列表
a="[[1,2],[3,4],[5,6]]"
m=eval(a)
print(type(m)) 输出为class 'list'
print(m) 输出为[[1,2],[3,4],[5,6]]
2)字符串转换为字典
a="{'name':'xu','age':'25'}"
m=eval(a)
print(type(m)) 输出为class 'dict'
print(m) 输出为{'name':'xu','age':'25'}
3)字符串转换为字典
a="('a','b','c')"
m=eval(a)
print(type(m)) 输出为class 'tuple'
print(m) 输出为('a','b','c')
二、元组(tuple)
1.定义:元组与列表类似,但是元组的元素不能编辑;元组中只包括一个元素时,需要在元素后加逗号,否则括号会被当做运算符使用。
1.长度len():
list1=('hello',false,1993,[0,1])
print(len(list1)); 输出为4;
2.访问、使用切片
print(list[:]) 输出全部
print(list[x:y]) 输出元素从第x位到第y-1位,x、y均为下标
print(list[::-1]) 输出倒序全部
print(list[x:y:z]) 输出元素从第x位到第y-1位,且步长为z
2.运算符、in/not in
list1=(1,2,3)
list2=('a','b','c')
list3=list1+list2 形成新的元组
print(list3) 输出结果为(1,2,3,'a','b','c')
print(list3[0,1]*3) 输出为(1,1,1)
print('a' in list3) 输出为true
print('a' not in list3) 输出为false
3.内置函数
1.长度len( )
list=('a','b','c','d','e')
print(len(list)) 输出为5
2.最大值max( ),最小值min( )
list=('a','b','c','d','e')
print(max(list)) 输出为e
print(min(list)) 输出为a
3.将其他类型转换成元组:tuple( )
list=['a','b','c','d','e']
print(tuple(list)) 输出为('a','b','c','d','e')
三、字典{dict}
1.定义:另一种可变容器模型,且可放任意类型对象,键值对形式,以逗号分隔,键必须是唯一的
z={'name':'xu','age':'25','banji':'python'}
2.增删改查
1)增加
z['a']='b'
print(z) 输出为{'name':'xu','age':'25','banji':'python','a':'b'}
2)删除
del z['a']
print(z) 输出为{'name':'xu','age':'25','banji':'python'}
3)修改
z['age']='18'
print(z) 输出为{'name':'xu','age':'18','banji':'python'}
4)查询
print(z['name']) 输出为xu
print(z.get['name']) 输出为xu
print(z.get('job','not find')) 输出为not find
3.函数
1)长度:len( )
z={'name':'xu','age':'25','banji':'python'}
print(len(z)) 输出为3
2)获取键:keys( )
for n in z.keys():
print(k,end="\t") 输出为name age banji
3)获取值:values( )
for j in z.keys():
print(j,end="\t") 输出为xu 25 python
4)获取每个键对值的元组items( )
for n,j in z.items:
print(n,j,end="\t") 输出为name xu age 25 banji python
4.练习
1)动态的给字典输入5个学生的姓名和手机号
list={}
for i in range():
a=input('请输入姓名:')
b=input('请输入电话:')
list[a]=b
print(list)
2)创建2个列表 一个存姓名 一个存手机
======通讯录管理系统======
1.增加姓名和手机
2.删除姓名
3.修改手机
4.查询所有用户
5.根据姓名查找手机号
6.退出
=====================
flag=True;
names=[];
phones=[];
while flag:
print("======通讯录管理系统======")
print("1.增加姓名和手机")
print("2.删除姓名")
print("3.修改手机")
print("4.查询所有用户")
print("5.根据姓名查找手机号")
print("6.退出")
print("=============")
print("input(请选择:"))
if i==6:
flag=False;
elif i==1:
names.append(input('请输入姓名:'));
phones.append(input('请输入手机号:'))
elif i==2:
names.remove(input("请选择删除的姓名:"))
elif i==3:
n=input("请输入你的手机号:")
j=phones.index(n);
m=input("请填写修改后的手机号:")
phones[j]=m;
elif i==4:
for i in range(len(names)):
print(names[i],end="");
print(phones[i],end="");
print()
elif i==5:
j=names.index(input("请输入用户姓名:"));
print(phones[j]);