一、列表
1、作用:一次性存储多个数据,且可为不同数据类型,里面的数据可以修改
格式:[数据1,数据2,数据3,。。。]
2、函数:
name_list = ['tom','xiaohu','marli','heshang']
# index(数据,开始,结束下标):列表查找返回下标
print(name_list.index('marli'))
# count(数据,开始,结束下标):子串在列表中出现的次数
print(name_list.count('heshang'))
# len(列表名):查列表中有几条数据
print(len(name_list))
#子串 in 字符串:子串是否在字符串中
print('tom' in name_list)
# 子串 not in 字符串:子串是否不再字符串中
print('ll' not in name_list)
3、案例
name_list = ['tom','xiaohu','xiaohong','xiaoshang']
name = input("请输入用户名:")
if name in name_list:
print(f'您输入的名字是{name},此用户已存在')
else:
print(f'您输入的名字是{name},注册成功')
name_list.append(name)
print(len(name_list))
4、列表增加数据
1)、# 列表.append(追加数据):列表结尾添加数据,
# 如果追加序列那么追加整个序列到列表里
name_list = ['tom','xiaohu','marli','heshang']
name_list.append('xiaomingss')
print(name_list) # ['tom','xiaohu','marli','heshang','xiaomingss']
name_list.append([1,2])
print(name_list) # ['tom','xiaohu','marli','heshang','xiaomingss',]
2)、# 列表.extend(数据):列表结尾追加数据,把数据拆开逐一追加数据到列表
name_list2 = ['tom','xiaohu','marli','heshang']
name_list2.extend([1,2])
name_list2.extend('xiaomingss')
print(name_list2) #['tom', 'xiaohu', 'marli', 'heshang', 1, 2, 'x', 'i', 'a', 'o', 'm', 'i', 'n', 'g', 's', 's']
3)、# 列表.insert(位置下标,数据)
name_list3 = ['tom','xiaohu','marli','heshang']
name_list3.insert(1,'heihei')
print(name_list3) #['tom','heihei','xiaohu','marli','heshang']
5、列表的删除
1)、# del 列表名称:列表删除
name_list = ['tom','xiaohu','marli','heshang']
del name_list
print(name_list)# 报错,没有这个列表
2)、# del 数据指定下标:删除列表中的数据
del name_list[1]
print(name_list)
3)、# 列表.pop(下标):删除指定下标数据,默认最后一个,并返还删除的数据
nn = name_list.pop()
print(nn)
print(name_list)
4)、# 列表.remove(数据):移除列表中某个数据的第一个匹配项
name_list.remove('tom')
print(name_list)
5)、# clear():清空数据
name_list.clear()
print(name_list)
6、列表的修改
name_list = ['tom','xiaohu','marli','heshang']
1)、# 列表下标 = 修改后的数据:修改指定下标数据
name_list[0] = 'ke'
print(name_list)
2)、# reverse():逆序
num =[1,6,8,9,3,7]
num.reverse()
print(num)
3)、# sort():排序 升序(默认False)和降序(True)
num.sort()
print(num)
num.sort(reverse=True)
print(num)
num.sort(reverse=False)
print(num)
4)、# copy():复制序列,如果用赋值的话原序列改变那么赋值之后的序列也会改变,赋值的不是数据而是地址
name_list3 = ['tom','xiaohu','heshang']
nae = name_list3 # 赋值指向name_list3的地址,原地址改变那么nae也改变
naee =name_list3.copy()
name_list3[0] = 'ke'
print(name_list3) ['ke','xiaohu','heshang']
print(nae) #['ke','xiaohu','heshang']
print(naee) #['tom','xiaohu','heshang']
7、列表的循环遍历
# while
name_list = ['tom','xiaohu','marli','heshang']
i=0
while i < len(name_list):
print(name_list[i])
i += 1
# for
for i in name_list:
print(i)
注:for循环比while更简洁
8、列表的嵌套
a = [[1,2],[3,4,5],[6,7,9]]
print(a[2]) #[6,7,9]
print(a[2][1]) #7
二、元组
1、作用:一个元组可以存储多个数据,且可为不同数据类型,但元组的内容不可被修改
2、定义:
注意:如果括号里只有一个数据,得在数据后面添加逗号,否则这个数据的数据类型,为原来的数据类型
多个数据:t1 = (数据1,数据2,数据3,……)
单个数据:t2 = (数据,)
3、元组的查
1)、# 下标查找数据
tuple1 = (10,12,'name','cc','name')
print(tuple1[2])#name
2)、# 元组.index(子串:开始下标:结束下标):查找某个数据,返回对应下表,否则报错
print(tuple1.index('cc'))#3
3)、# 元组.count(子串:开始下标:结束下标):统计数据在元组中出现的次数
print(tuple1.count('name'))#2
4)、# len(元组):统计元组数据的个数
print(len(tuple1))#5
4、元组的修改:某些特定的数据可以被修改
# 元组的修改;某些特定的可被修改;tuple1就是典型的不可修改;元组里的列表数据可被修改
tuple2 = (10,12,'name',['cc','name'])
print(tuple2)#(10, 12, 'name', ['cc', 'name'])
tuple2[3][0] = 'Tom'
print(tuple2)#(10, 12, 'name', ['Tom', 'name'])