当前位置: 首页 > news >正文

python3 列表取交集_常用序列数据类型列表

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

演示环境:

python3.6
pycharm中的python3.6


第一部分:列表(list):

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

例如:

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

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

3f95bb29063da7bc33e04537f2aea996.png列表的特性:
1.1:索引:

print(service[1])    ##输出第二个元素,sshprint(service[-1])   ##输出最后一个元素,ftp

084e46a096fb641ea20e177849cc9f04.png

1.2:切片:

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

db0ac2c93ed31feeaf531fb6705d3002.png

1.3:重复:

print(service * 3)   ##输出三遍

7810a0b0dd238e06d112488e61bc7b36.png

1.4:连接:

service1 = ['nfs','samba']print(service + service1)

45e0493e7f71069210e49e9539b6f598.png

1.5:成员操作赋:

print('nfs' in service)   ##判断是否存在

e07a0b6f8b4eac0ab0cda947f5fb567e.png

1.6:迭代:[for循环遍历]

for i in service:  print(i)       ##遍历输出每个元素

8e4403ddf4278df5f5dbb4a1b98b3447.png

1.7列表里嵌套列表

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

4afb180f34739e058d6dcbaf458bbade.png


对以上内容进行一个练习:
题目:输入一年中的某一天,判断这一天是这一年的第几天:【输入格式: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))

56e53fa7db972ff32901012fffece296.png

c463b3e852994683f7c2cc2cee57e4be.png


列表的增删改查:
1.增加:

往列表里增加元素:

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

2edc613f6e13b93c2bd1737e36a3102f.png

2.删除:

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

df7e7d5a5a4fb7c24af07087f7226865.png

3.赋值:

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

5a28dd2abee9763d703c6b982e9f3dd1.png

4.查看:
查看出现的次数

service.count('ssh')

查看指定元素的索引值

service.index('iscsi')    ###最小索引值service.index('ssh',1,3)   ###从1-3中查找【第二个元素和第三个元素之间】【不取上限】

64469c37e4078af9d77f1f6203ab2419.png

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)    

97607e69410cbff1a7d0bb7167abda72.png

339efeb4f2e0a0e0d97bb347561cf469.png


练习:修改用户登陆系统:用户名和用户密码存放在两个列表里。用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' %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')

b7c00351f78bd832430233935621cdcf.png

db976df5bc0242c6d08d35d4f435b157.pngcefde3b5bf38c17c11f30d98b6f8ef75.png


关于python中列表的基础用法如上所述。


http://www.taodudu.cc/news/show-647670.html

相关文章:

  • 【physx/wasm】在physx中添加自定义接口并重新编译wasm
  • excel---常用操作
  • Lora训练Windows[笔记]
  • linux基础指令讲解(ls、pwd、cd、touch、mkdir)
  • InnoDB 事务处理机制
  • 启明云端ESP32 C3 模组WT32C3通过 MQTT 连接 AWS
  • accept 阻塞怎么断开_暖气片放水就热不放水了就不热,怎么解决?
  • python线程唤醒_Python 并发编程(一)之线程
  • android 获取serialno_[Android]关于Android 唯一设备号(ro.serialno)
  • byte数组转file不写入磁盘_Linux 环境写文件如何稳定跑满磁盘 I/O 带宽?
  • android微信小程序自动填表_微信小程序自动回复用户消息
  • db2分页查询语句优化_数据量很大,分页查询很慢,该怎么优化?
  • arcgis 统一投影下范围不同_关于Arcgis这62个常用技巧,你造吗
  • 漏洞挖掘 符号执行_简述符号执行
  • 小度智能音箱维修点_会投屏电视的智能音箱——小度智能音箱PLAY青春版轻体验...
  • pq 中m函数判断嵌套_Python中numpy的布尔判断、切片、维度变化、合并、通用函数...
  • 对象 普通po转_谈谈C++对象的构造
  • 内存条ar开头的如何看大小_软网推荐:明明白白看内存
  • if else 简写_15+ JS简写骚操作,让你的代码“秀”起来??
  • iextensionunit类_Java ICompilationUnit.reconcile方法代码示例
  • 报错 插入更新_自增主键,三类插入测验答案,在这里。
  • 事务连接中断_HTTP长连接和短连接
  • 亚马逊评价抓取插件_亚马逊运营必备插件
  • controller需要捕获异常吗_Spring之Controller异常处理
  • mysql8中文排序_mysql中utf8编码的中文字段按拼音排序
  • html 分级切换菜单_FL studio系列教程(十六):FL Studio查看菜单讲解
  • mysql还原数据库后日期显示3000_mysql 直接从date 文件夹备份表,还原数据库之后提示 table doesn`t exist的原因和解决方法...
  • java 函数名调用_粉丝提问|c语言:如何定义一个和库函数名一样的函数,并在函数中调用该库函数...
  • docker mysql sock_docker mysql安装
  • mysql最大述_mysql最大字段数量及 varchar类型总结
  • php协程实现mysql异步_swoole与php协程实现异步非阻塞IO开发
  • mysql中xml类型_使用 SQLXML 数据类型
  • mysql语法6_全面接触SQL语法(6)_mysql
  • sqlerver mysql_转 MYSQL学习(一)
  • tcpdump 识别成dns_dns tcpdump
  • java linkedhashmap_java学习-hashMap和linkedHashMap