1.列表的数据类型不需具有相同的类型
创建一个列表,只需要把逗号分割的不同的数据类型项使用方括号括起来即可
list1=['Google','Runoob',1997,2000];
print('list[0]:',list1[0])
列表也可以使用切片:原来字符串这里也可以用
list=['Google','Runoob',1997,2000];
print(list[1:3])
2.数据结构--->列表的增删改查(insert,delete,update,query)
li=[33.33,'abc','456',90,'Google','Runoob',1997,2000]
print(type(li))
print(li) #切片
print(li[:])
print(li[-1::-1]) #从前到后
增:list1.insert(4,2001),list1.append('hello')
两个列表还可以进行相加
列表还可以 以*的操作符 listl*3
列表1.extend(列表2),是把列表2迭代后(遍历 循环)加到列表1,extend()没
有返回值
li=['Google','Runllb',1997,2000]
li.append('2018')
print(li)
li.insert(2,'青年节')
print(li)
li1=['a','b','c','d']
li2=[1,2,3,4]
li1.append(li2)
li1.extend(li2) #注释掉
for i in li2:
li1.append(i)
print(li2*4) #乘于4个
print(li2)
删除:del list1[2]
listl.pop(int index):把最后一个删除,也可以指定删除的下标
litl.remove("")删除括号中的内容,但只删除一次
li1=['a','b','c','d']
li2=[1,2,3,4]
del li2[2:]
print(li2)
li1=['a','b','c','d']
li2=[1,2,3,4]
del li2[2:]
li2.pop(1) #删除下标
print(li2)
修改:list[2]=2001
li2[li2.__len__()-1]=6
print(li2)
查:list.index('Runoob')返回查找到的下标 不存在 抛
异常
用 in /not in可以查找是否存在
li2=[1,2,3,4]
print(li2.index(3))
print('3' in li2)
嵌套列表:[['a','b','c'],[1,2,3]]
li1=['a','b','c','d']
li2=[1,2,3,4]
li3=[li1,li2]
print(li3[1][3])
================================================
list函数 dir(object)将一个数据类型的所有函数和属性
输出
_len__() __类型的函数代表私有的_一般不调用
1.len(list)
列表元素个数
print(dir(list)) # dir将一个数据类型的所有函数属性 输出
print(li3.__len__())
print(len(li3)) #__len__() —类型的函数代表私有
2.max(list) 字母 以ascii为依据
返回列表元素最大值
3.min(list)
返回列表元素最小值
li1=['a','b','c','d']
print(max(li1))
print(min(li1))
4.list(seq)
将元组转换为列表
5.list.append(obj)
在列表末尾添加新对象
tu=(1,2,1)
li1=['a','b','c','d']
li2=[1,2,3,4]
new_li=list(tu) #构建函数-->开辟新空间 初始化数据
# 数据
print(id(li1)) #返回变量 对象的内存地址
print(id(li2))
print(new_li)
print(tu)
6.list.extend(seq)
在列表末尾一次性追加另一个 序列中 的每个值 (用新列表扩展原来的列表)
li1=['a','b','c','d']
li2=[1,2,3,4]
tu=(1,2,1)
li1.extend(tu)
print(li1)
7.list.pop(obj=list[-1])
移除列表中的一个元素(默认最后一个元素),并且返回该元素的值 参数识下标
8.list.reverse()
反向列表中元素
li1=['a','b','c','d']
pop=li1.pop()
print(pop)
9.list.sort([func])
对原列表进行排序 如果指定参数,则使用比较函数指定的比较函数
10.list.clear()
清空列表
11.list.copy() 复制列表
li1.sort()
li1.clear()
li5=li1.copy()
print(id(li1))
print(id(li5))
li5[2]='w'
print(li1)
print(li5)
a = [1,2,3]
b=a
print(a)
print(b)
b[2]=9
c = []
c = a
c[1]=9
print(c)
print(a)
d=a[:]
d[1]=7
print(d)
print(a)
names=['山治','索隆'] phones=['1666666666','15900000000'] print('**********************') while(False):... i=0 # 元素下标 while i <len(names): print(names[i]) i+=1 # i=i+1 # for 的两种写发 for i in range(len(names)): print(names[i]) for i in names: print(i)
eval()将元组、字典、列表类型的字符串转为元组、字典、列表 默认元组
可以把list,tuple,dict和string相互转化。
r='23,6,30'
r1=eval(r)
print(r1[0])
print(type(r1[0]))
print(type(r1))
字符串转换成字典 r="{'a':1,'b':2}" r1=eval(r) print(type(r1))
==================================================
二.元组
既定 创建的时候 不会改变
1.可变
2.数值 不可变类型
a=1
a=2
b=1
print(id(1))
print(id(a))
print(id(b))
t=(1,2,'oop',4,[2,2,3],'汉字')
print(t[1])
t[4][1]=3
print(t)
逐个赋值 一一对应
t=(1,2,'oop',4,[2,2,3],'汉字')
a,b,c=t
print(a,b,c)
a=(33,)
print('a:',a,)
print('a:',type(a))
两种方式:
t=(1,2,'oop',4,[2,2,3],'汉字')
for i in range(len(t)):
print(t[i])
for i in t:
print(i)
切片:
t=(1,2,'oop',4,[2,2,3],'汉字')
print(t[::-1])
# 运算符
t=('A','a','B','b')
t1=t * 3
print(t1)
print(max(t))
print(min(t))
li=[1,2,3,6,5,4]
tu=tuple(li) # 创建一个元组 格式的诗句格式 内容太就是小括号里面的
print(tu)
tu1=(tu[:])
print(tu1)
====================================================
练习.
3.求列表中最大值,最小值 2listl.max(),listl.min()
创建两个列表 一个存姓名 一个存手机:
names=['小杰']
phones=['110']
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 phones in phones:
phones=input('电话已存在,请重新输入:')
names.append(name)
phones.append(phone)
print('存入成功!')
elif (i==2):
name=input('请输入姓名:')
if name in names:
index=names.index(name)
# names.pop(index)
# phones.pop(index)
del names[index]
del phones[index]
print('删除成功')
else:
print('名字不存在')
elif (i==4):
for i in range(names.__len__()):
print(names[i], phones[i])
print('输出完毕')
elif (i == 3):
phone = input('请输入电话:')
if phone in phones:
new_phone = input('请输入新的电话:')
while new_phone in phones:
new_phone = input('新的电话已存在,重新输入电话:')
index = phones.index(phone)
phones[index] = new_phone
print('更新成功')
else:
print('电话不存在')
elif i == 5:
name = input('请输入姓名:')
if name in names:
index = names.index(name)
print('电话:', phones[index])
else:
print('名字不存在')
elif i == 6:
print('谢谢使用')
break