欢迎访问 生活随笔!

凯发k8官方网

当前位置: 凯发k8官方网 > 编程语言 > python >内容正文

python

python3 列表取交集-凯发k8官方网

发布时间:2024/10/8 python 0 豆豆
凯发k8官方网 收集整理的这篇文章主要介绍了 python3 列表取交集_常用序列数据类型列表 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

python中有列表、元组、集合、字典这四种可以存放多个数据元素的集合,他们在总体功能上都起着存放数据的作用,却都有着各自的特点。本片文章中我们会对列表的用法做详细说明。

演示环境:

python3.6
pycharm中的python3.6


第一部分:列表(list):

列表(list)用来存储不同的数据类型,使用 [ ]

例如:

service = ['http','ssh','ftp']

后续演示中的service都以上述为基础。

列表的特性:
1.1:索引:

print(service[1]) ##输出第二个元素,sshprint(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])   ##第二个元素

对以上内容进行一个练习:
题目:输入一年中的某一天,判断这一天是这一年的第几天:【输入格式:yyyy-mm-dd】

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 ##将二月的天数改为29for 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 = daybreakprint('这一天是%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 randomrandom.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('请输入正确选择!')

这是简单的列表使用练习,功能不全面,后续待改进。


练习二:用python列表实现栈操作:
1.入栈
2.出栈
3.栈顶元素
4.栈长度
5.栈是否为空

“”"
功能包括:
1.入栈 放到栈顶的位置
2.出栈 判断是不是栈顶元素,不是的话将其后元素遍历移除,再移走该元素,再将其他元素加回栈
3.栈顶元素 索引
4.栈长度 判断个数
5.栈是否为空 #栈顶有无元素
“”"
#栈的特点:先进后出

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' �l_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中列表的基础用法如上所述。

总结

以上是凯发k8官方网为你收集整理的python3 列表取交集_常用序列数据类型列表的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得凯发k8官方网网站内容还不错,欢迎将凯发k8官方网推荐给好友。

  • 上一篇:
  • 下一篇:
网站地图