Python-列表(list)
一、定义:
列表、list、数组、array:都叫列表
1.一组有序项目的集合;
2.可变的数据类型【可以进行增删改查】;
3.列表中可以包含任何数据类型,也可包含另一个列表【可任意组合嵌套】;
words=['view','code','tools',['price','num','198',['hello','usa','吃鸡']]] # 三维数组,套了几层就是几维数组 print(words[-1][-1][1]) #输出结果 usa
4.列表是以方括号“[]”包未的数据集合,不同元素以“,”分隔;
new_stus=['黄1','黄2','黄3','黄4','黄5']
5.可通过序号访问其中成员(最前面一个元素的下标(索引、角标、索引)是0 最后一个元素的下标是-1)
print(new_stus[2]) #输出结果‘黄3’
二、使用方法:
1.增删改查
(1)创建一个空列表:cities
cities=[] #空的
(2)增加元素
cities.append('北京') #append 在列表末尾增加一个元素 cities.insert(0,'上海') #insert 制定位置添加一个元素,下标不可写负数,一次只能增加一个 cities.append('广州')
cicties.extend(cicties1) #合并列表
(3)删除元素
cities.pop(0) #删除指定位置的元素 传下标 cities.remove('北京') #删除指定的元素 传元素 cities.clear() #清空list del cities[-1] #删除指定位置的
(4)查找元素
print(cities[0]) #指定位置的 print(cities.index('广州')) #index 获取元素的下标,找不到元素会报错 print(cities.count('广州')) #count 查看元素在list里面出现了多少次
(5)修改元素
cities[1]='南京' #修改指定下标位置的元素,只可以修改已有的下标
2.排序
(1)创建一个列表 nums
nums=[22,33,11,77,55,88]
nums.sort() #soft 升序 nums.sort(reverse=True) #加reverse=True 降序 print(nums)
3.反转:
my_list=['one','two','three'] my_list.reverse() #把list反转一下 print(my_list) #输出结果:['three','two','one']4.
4.list循环:
lists = ['H1','H2','H','H4'] for name in lists: print(name) #打印结果:H1 H2 H3 H4
for循环在循环可迭代对象的时候,每次循环的是里面的每个月元素
lists = ['黄1','黄2','黄3','黄4',[1,2,3,4]] for name in lists: if type(name) == list: for i in name: print(i)
二维数据遍历多加一层循环
三、切片
切片是list取值的一种方式,同样适用于字符串
nums=['one','two','three']
print(nums[1:3]) #顾头不顾尾 print(nums[1:]) #如果从某个下标开始取,取到末尾结束,那么末尾的下标可以省略不谢 print(nums[:2]) #如果是从头开始取,取到后面某个 print(nums[:]) #取所有的 print(lis[:10:2]) #步长,:2 隔2个取一次 #如果步长是负数,从右边往左边开始取值 #如果步长是正数,从左边往右边开始取值
四、元祖
元祖也是一个list,和list的区别是,元祖里面的元素无法修改
t = (1,2,3,4,5,6) print(type(t)) #输出结果:<class 'tuple'>
t = (1) #int类型 t = ('abc') #str类型 print(type(t))
如果元祖里面只有一个元素的话,那么你必须在这个元素后面在一个逗号
五、深拷贝、浅拷贝:
import copy lis = [1,1,2,3,4,5,6,8] l2 = lis #浅拷贝 l2.append('hello') print(lis) #打印结果:[1, 1, 2, 3, 4, 5, 6, 8, 'hello']
lis = [1,1,2,3,4,5,6,8] l2 = copy.deepcopy(lis) #深拷贝 l2.append('hello') print(lis) 打印结果:[1, 1, 2, 3, 4, 5, 6, 8]
深拷贝和浅拷贝的区别就是深拷贝会重新开辟一个内存空间
五、小练习:
校验用户名是否合法,有以下要求:
1.输入账号
2.如果账号存在,提示已经被注册,如果不存在,就继续注册
3.用户名不能为空
4.用户名长度6-12之间
5.最多输入3次
all_users=['黄11111','黄2','黄3'] for i in range(3): username=input('请输入用户名').strip() if len(username)>5 and len(username)<13: if all_users.count(username)>0: print('这个名字太好啦,已经被注册了') else: print('名字不错,赶紧注册吧!') break else: print('用户名长度不合法!长度6-12之间') else: print('失败次数过多')

浙公网安备 33010602011771号