python中有列表、元组、集合、字典这四种可以存放多个数据元素的集合,他们在总体功能上都起着存放数据的作用,却都有着各自的特点。本片文章中我们会对列表的用法做详细说明。
演示环境:
python3.6
pycharm中的python3.6
第一部分:列表(list):
列表(list)用来存储不同的数据类型,使用 [ ]
例如:
service = ['http','ssh','ftp']
print(service[1]) 输出第二个元素,ssh print(service[-1]) 输出最后一个元素,ftp

1.2:切片:
print(service[1:]) 打印第一个元素之后的内容 print(service[:-1]) 打印最后一个元素之前的内容 print(service[::-1]) 倒序输出

1.3:重复:
print(service * 3) 输出三遍

1.4:连接:
service1 = ['nfs','samba'] print(service + service1)

1.5:成员操作赋:
print('nfs' in service) 判断是否存在

1.6:迭代:[for循环遍历]
for i in service: print(i) 遍历输出每个元素

1.7列表里嵌套列表
service2 = [['abc','def','www'],[1,2,3],['mike','tony','sun']] 对其索引:print(service2[2][1]) 第三个元素中的第二个元素 对其切片:print(service2[:][1]) 第二个元素

User_input = input('输入:年-月-日') Year = int(User_input.split('-')[0]) 得到年份 Month = int(User_input.split('-')[1]) 得到月份 Day = int(User_input.split('-')[2]) 得到天 li = [31,28,31,30,31,30,31,31,30,31,30,31] 所有平年各个月份的天数 num = 0 记录天数 if ((Year % 4 == 0) and (Year % 100 != 0) or (Year % 400 == 0)): 当闰年时: li[1] = 29 将二月的天数改为29 for i in range(12): 遍历月份 if Month > i + 1: i从0开始,假如是5月的某一天,i循环到3停止,经过0-1-2-3四次循环,取4个月份即取1-2-3-4月的所有天 num += li[i] 将1-4月总天数求和 else: 退出if判断后,当下一次循环时,i=4,i+1不满足if的条件,进入else,将最后5月的第几天加入总天数中 num += Day break print('这一天是%d年的第%d天' %(Year,num))


列表的增删改查:
1.增加:
往列表里增加元素:
1.print(service + ['firewalld']) 用连接的方式 2.service.append('firewalld') print(service) append:追加一个元素到列表中 3.extend:拉伸 追加多个元素到列表中 service.extend(['mysql','firewalld']) 4.service.insert(1,'samba') 在指定索引位置插入元素 在第二个元素的位置插入samba作为第二个元素

2.删除:
1.service.pop() 弹出最后一个元素 a = service.pop(0) 弹出第1个元素 可以将其赋值 2.service.remove('ssh') 指定删除对象的名字 直接删除,不能将其赋值 不能指定序号,只能指定要删除对象的 3. del service 删除列表 del service 直接删除整个列表 print(service)

3.赋值:
1.service[0] = 'mysql' 通过索引 重新赋值 2.service[:2] = ['samba','iscsi'] 通过切片给前两个元素重新赋值

4.查看:
查看出现的次数
service.count('ssh')
查看指定元素的索引值
service.index('iscsi') 最小索引值 service.index('ssh',1,3) 从1-3中查找【第二个元素和第三个元素之间】【不取上限】

5.排序:
sort 排序
对字符串排序不区分大小写
names = ['alice','Bob','coco','Harry'] names.sort() names 按照ASCLL排序 先排序首字母为大写的,再排序首字母是小写的 names.sort(key=str.lower) 对字符串排序不区分大小写,相当于将所有元素转换为小写,再排序 names.sort(key=str.upper) 相当于将所有元素转换为大写,再排序
乱序
li = list(range(10)) 生成0-9,将其转换为列表形式 print(li) import random random.shuffle(li) 随机打乱 print(li)


练习:修改用户登陆系统:用户名和用户密码存放在两个列表里。用admin超级用户登陆后,可以进行添加,删除,查看用户的操作。
1.后台管理员admin 密码admin
2.管理员才能看到会员信息
3.会员信息包含
添加会员信息
删除会员信息
查看会员信息
退出
inuser = input('UserName: ') inpasswd = input('Password: ') users = ['root', 'westos'] passwds = ['123', '456'] if inuser == 'admin' and inpasswd == 'admin': while True: print(""" 菜单 1.添加会员信息 2.删除会员信息 3.查看会员信息 4.退出 """) choice = input('请输入选择: ') if choice == '1': Add_Name = input('要添加的会员名: ') Add_Passwd = input('设置会员的密码为: ') users = users + [Add_Name] passwds = passwds + [Add_Passwd] print('添加成功!') elif choice == '2': Remove_Name = input('请输入要删除的会员名: ') if Remove_Name in users: Remove_Passwd = input('请输入该会员的密码: ') SuoYinZhi = int(users.index(Remove_Name)) if Remove_Passwd == passwds[SuoYinZhi]: users.remove(Remove_Name) passwds.pop(SuoYinZhi) print('成功删除!') else: print('用户密码错误,无法验证身份,删除失败') else: print('用户错误!请输入正确的用户名') elif choice == '3': print('查看会员信息'.center(50,'*')) print('\t用户名\t密码') usercount = len(users) for i in range(usercount): print('\t%s\t%s' %(users[i],passwds[i])) elif choice == '4': exit() else: print('请输入正确选择!')
值是简单的列表使用练习,功能不全面,后续待改进。
Zhan = [] 定义栈列表 t = [] 定义出栈临时栈列表 while True: print(""" 菜单 1.入栈 2.出栈 3.查看栈顶元素 4.查看栈长度 5.查看栈中元素 6.退出 """) choice = input('请输入选择: ') if choice == '1': Aim_Name = input('请输入要入栈的元素名: ') Zhan = Zhan+[Aim_Name] print('入栈成功!') elif choice == '2': Del_Name = input('请输入要出栈的元素名: ') if Del_Name in Zhan: Length = len(Zhan) if Zhan.index(Del_Name) == Length-1: #如果为栈顶元素 Zhan.pop() else: #不为栈顶元素 SuoYin = Zhan.index(Del_Name) for i in range(Length-1-SuoYin): #将要出栈元素后面的元素先保留 t.append(Zhan.pop()) #原栈中最后一个元素变为了第一个,顺序颠倒 Zhan.pop() #目标出栈 Zhan = Zhan+t[::-1] #将目标元素后的其他元素移回栈中 else: print('栈中没有%s' %Del_Name) elif choice == '3': Zhan_Top = Zhan[-1] print('栈顶元素为:%s' %Zhan_Top) elif choice == '4': Length = len(Zhan) print('栈的长度为%s' %Length) elif choice == '5': print(Zhan) elif choice == '6': exit() else: print('请输入正确的选项!') print('\n')



关于python中列表的基础用法如上所述。
大大的小小阳
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/229344.html原文链接:https://javaforall.net
