1.列表的数据类型不需具有相同的类型
创建一个列表,只需要把逗号分割的不同的数据类型项使用方括号括起来即可
list1=['Google','Runoob'1997,2000]:
print('list[0]:',list1[0])
列表也可以使用切片:原来字符串这里也可以用
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("")删除括号中的内容,但只删除一次
del li2[2:]
print(li2)
del li2[2:]
li2.pop(1) #删除下标
print(li2)
修改:list[2]=2001
li2[li2.__len__()-1]=6
print(li2)
查:list.index('Runoob')返回查找到的下标 不存在 抛
异常
用 in /not in可以查找是否存在
print(li2.index(3))
print('3' in li2)
嵌套列表:[['a','b','c'],[1,2,3]]
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)
返回列表元素最小值
print(max(li1))
print(min(li1))
4.list(seq)
将元组转换为列表
5.list.append(obj)
在列表末尾添加新对象
tu=(1,2,1)
new_li=list(tu) #构建函数-->开辟新空间 初始化数据
# 数据
print(id(li1)) #返回变量 对象的内存地址
print(id(li2))
print(new_li)
print(tu)
6.list.extend(seq)
在列表末尾一次性追加另一个 序列中 的每个值 (用新列表扩展原来的列表)
li1.extend(tu)
print(li1)
7.list.pop(obj=list[-1])
移除列表中的一个元素(默认最后一个元素),并且返回该元素的值 参数识下标
8.list.reverse()
反向列表中元素
pop=li1.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=('*********')
while i<len(names):
i=0 #元素下标
while i<len(names)
print(names[i]
i+=1 #i=i+1
r=[1,2,1]
r1=str(r)
print()
(1,2,5,7)
r='23,5,6'
val = eval(r)
print(val)
eval()将元组 字典 列表类型的字符串转换为元组 字典 列表 没有表示默认元组
可以把list,tuple,dict和string相互转换
既定 创建的时候 不会改变
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')
#逐个赋值 一一对对应
print(t[1])
t[4][1]=3
a,b,c=t
print(a,b,c)
a=(33)
print('a:',a)
print('a:,')
t1=t*3
print(t1)
print(t2-t1)
print(max(t))
print(min(t))
li=[1,2,3,6,5,4]
tu=tuple(li) #创建一个元组 格式的数据格式 内容就是小括号
print(tu)
tul=(tu[:])
print(tul)
==========================================================
练习.
3.求列表中最大值,最小值 2listl.max(),listl.min()
创建两个列表 一个存姓名 一个存手机:
names=['索隆','山治']
phones=['123','321']
while True:
print("=======通讯录管理系统=========")
print("1.增加姓名和手机")
print("2.删除姓名")
print("3.修改手机")
print("4.查询所有用户")
print("5.根据姓名查找手机号")
print("6.退出")
print("============================")
i = int(input("请选择:"));
if i ==1:
name=input('请输入姓名')
if name in names:
s=input('此名字已存在,是否继续录入 y/n')
print()
if s=='y':
name=input('请输入姓名')
names.append(name)
phone = input('请输入手机号')
if phone in phones:
print('手机号存在,请重新录入')
else:
phones.append(phone)
else:break
else:
names.append(name)
phone=input('请输入手机号')
if phone in phones:
print('手机号存在,请重新录入')
else:
phones.append(phone)
elif i == 4:
for j in range(len(names)):
print(names[j],'的手机号为',phones[j])
elif i == 2:
name=input('请输入姓名')
if name in names:
index = names.index(name)
names.pop(index)
phones.pop(index)
print('删除成功')
else:
print('姓名不在通讯录')
elif i == 3:
name=input('请输入要修改哪位机主')
if name in names:
phone=input('请输入修改后的手机号')
index = names.index(name)
phones.insert(index,phone)
print('修改成功')
else:
print('姓名不在通讯录')
elif i ==5:
name = input('要查找的人')
if name in names:
index=names.index(name)
phone=phones[index]
print(phone)
else:
print('姓名不在通讯录')
if i==6:
print('谢谢使用')
break