列表也可以叫做(list、数组、arrary)
name = [‘张三‘,‘李四‘,‘小萌‘,‘李丽‘,‘悟空‘] # 0 1 2 3 4 下标、(角标,索引)
print(name[1])
print(name[-1]) #最前面一个元素下标是0,最后一个元素下标是-1
对列表进行增删改查
增 append、 insert
citys = [] citys.append(‘北京‘) #在列表末尾加增加一个元素 citys.insert(0,‘上海‘) #在指定的位置增加一个元素 citys.append(‘广州‘) print(citys)
删 pop remove clear
citys.pop(-1)#删除指定位置的元素 citys.remove(‘北京‘)#删除指定的元素 citys.clear() #清空列表 del citys[-1]#删除指定位置的元素 print(citys)
改
citys = [‘上海‘,‘北京‘,‘广州‘] citys[1] = ‘南京‘ #修改指定位置的元素,如果指定的下标不存在,会报错 print(citys)
查 index(获取下标)count(出现次数)
print(citys[0]) #查找指定位置的 print(citys.index(‘广州‘)) #获取元素的下标,如果找不到这个元素会报错 print(citys.count(‘广州‘))#查找元素在列表中出现的次数 print(citys.reverse()) #就是把这个列表反转过来 print(citys) #查看反转过来的结果 nums = [1,5,76,56,4,23] nums.sort() #排序,升序 nums.sort(reverse=True) #排序,降序 print(nums)
合并
citys = [‘上海‘,‘北京‘,‘广州‘] citys2 = [‘杭州‘,‘江苏‘,‘厦门‘] citys.extend(citys2) print(citys) #把ciytys2合并到citys print(citys+citys2) #合并列表 print(citys*2) #*几次就是复制几次
list小练习,校验用户名是否合法
#校验用户名是否合法 #输入账号 #input #如果账号存在的,提示已经被注册,如果不存在,就让他去注册all_users[] #不能为空 strip() #用户名长度6-12位之间 len() 元素的个数 #最多输入3次 all_users = [‘xiaomeng‘,‘niuhanyang‘,‘liangpan‘] 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(‘输入次数过多‘)
切片,切片是list一种取值方式,取多个值。 它可以获取多个元素,可以理解为,从第几个元素开始,到第几个元素结束,获取他们之间的值,格式是lis[1:10]
nums = [‘李四‘,‘王五‘,‘宝宝‘,‘张三‘] print(nums[0]) #取下标0的值 print(nums[1:3]) # 取下标1到3的值,但不包括3。 顾头不顾尾 print(nums[1:]) #取从第二个下标开始的后面所有元素。 如果从某个下标开始取,取到末尾结束,那么末尾的下标可以省略不写 print(nums[:2]) #如果从头开始取,取到后面某个下标结束,那么开头的下标可以不写 print(nums[:]) #取所有的 #带步长取值 lis = list(range(1,11)) print(lis) nums = [1,2,3,4,5,6,7,8,9,10] print(lis[0:10:2]) #步长,隔几个取一次 print(lis[0::3]) #步长,隔几个取一次 print(lis[::-1]) #如果步长是正数的话,从左往右取值, print(lis[::-2]) #如果步长是负数的话,从右往左开始取值 lis.reverse() #改变了原来list值 print(lis[::-1]) #产生了新的list,不会改变原来list的值 print(lis) #切片操作同样适用于字符串 info = ‘今天,天气很好’ Print(info[0;2])
list循环小练习
stus=[ [‘小明‘,‘未交‘], [‘小白‘,‘已交‘], [‘小紫‘,‘已交‘], [‘小红‘,‘未交‘], [‘小绿‘,‘未交‘], [‘小黄‘,‘未交‘], [‘小黑‘,‘已交‘] ] pass_list = [ ] #所有已经交作业的同学 fail_list = [ ] #没有交作业同学的名字 stus[0][1] #取到状态 stus[0][0] #取到名字 for stu in stus: status = stu[1] #状态 name = stu[0] #取名字 if status == ‘未交‘: fail_list.append(name) else: pass_list.append(name) print(‘未交作业的所有同学是 %s , 总共有%s个人‘%(fail_list,len(fail_list))) print(‘已交作业的所有同学是 %s , 总共有%s个人‘%(pass_list,len(pass_list)))
元祖
元祖也是一个list,他和list的区别是,元组里面元素无法修改,比如用户数据库的链接信息
t = (1,2,4,5,6,7) #print(type(t)) #试试循环,切片,下标取值,修改值能不能用 print(t[:3]) #切片 print(t[3]) #下标取值 for i in t: print(i) #循环 t[2] =9 print(t) #修改 不可修改 报错TypeError: ‘tuple‘ object does not support item assignment mysql_coon = (‘192.168.1.109‘,‘root‘,‘123456‘,3306,‘my_db‘) #数据库 #如果元祖里面只有一个元素的话,那么必须在这个元素后面加一个逗号 word1 = (1) word2 = (1,) print(‘word1‘,type(word1)) print(‘word2‘,type(word2))