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

python3 列表取交集_常用序列数据类型列表相关推荐

  1. Python-两个列表取交集、并集、差集(编写了一个两个文件取交集的小工具)

    最近突然有个需求(取两个文件数据的交集),数据量非常大(2000多万行的数据),最开始的思路是先取一个文件所有的数据,保存成一个列表,然后判断是否在另一个文件中,花了十几分钟写出来后,一运行,差点崩溃 ...

  2. python 列表取交集

    Python 中列表取交集的方法有两种: 方法一:使用内置函数 intersection() 如果要取两个列表的交集,可以使用内置函数 intersection(),它会返回两个列表中都有的元素. 例 ...

  3. python两个list取交集_使用 Python 获取两个列表的交集、并集、差集的常用方法 | Jin''''s Blog...

    在数据处理中经常需要使用 Python 来获取两个列表的交集,并集和差集.在 Python 中实现的方法有很多,我平时只使用一两种我所熟悉的,但效率不一定最高,也不一定最优美,所以这次想把常用的方法都 ...

  4. python3中数字类型有哪些_Python3数据类型—列表 | 吴老二

    变量 在没有说数据类型之前,先简单说一下变量.后面会对变量有补充,变量是什么,简单的说就是内存地址的名字.举个例子,wulaoer="吴老二",这就是一个变量,中文"吴老 ...

  5. mysql数据库取交集_不同数据库取并集、交集、差集

    一.并集: 需求:汇总t1.t2两表的数据 mysql.postgresql.oracle数据库取并集都是用union/union all关键字,不再赘述 二.交集: 需求:选出既在t1表又在t2表的 ...

  6. js 两个列表取交集

    js没有直接的方式来获取两个列表的交集,需要自己写一个函数,如下: function jiaoji(arr_1,arr_2){//先对arr_1进行一次深拷贝,防止对原两个列表造成影响let temp ...

  7. python列表怎么表示_详解Python列表

    一.概念 在Python中,列表(list)是常用的数据类型.列表由一系列按照特定顺序排列的项(item)组成.列表用方括号"[]"括起来,并用逗号","来分隔 ...

  8. 18100出多少取整_关于JavaScript数据类型,你知道多少?

    JavaScript的数据类型是每一个前端开发者必须要掌握的内容,也是最基础最重要的角色之一,关于JavaScript数据类型你知道多少? JavaScript一共有7种数据类型:String.Num ...

  9. 两个list取交集_利用jieba计算两个句子的相似度

    1.余弦相似度,又称为余弦相似性,是通过计算两个向量的夹角余弦值来评估他们的相似度.余弦相似度将向量根据坐标值,绘制到向量空间中,如最常见的二维空间. # -*- coding: utf-8 -*- ...

最新文章

  1. 学web前端的第一天
  2. python字符串写入excel-python 操作 Excel 之写入
  3. Openxml: 导出excel 设置 cell的格式
  4. 075-SSH遇到不能登陆的情况
  5. 正则表达式中的小括号用法
  6. 论文盘点:CVPR 2019 - 文本检测专题
  7. ERROR: org.apache.hadoop.hbase.MasterNotRunningException: Retried 7 times
  8. h5页面保存img_如何设计H5编辑器中的模版库并实现自动生成封面图
  9. 7、乐趣国学—趣谈“圣贤”
  10. db9口rs485引脚接收和发送定义
  11. 独家发布全能在线语言翻译工具QTranslate v6.8.0 汉化中文版
  12. 神舟精盾 t97 键盘背光灯如何设置亮的时间
  13. Adobe Premiere视频添加水印图片教程,小白一看就会!
  14. 别被忽悠了,程序员告诉你个人所得税年度汇算那些事
  15. Windows API一日一练(29)SelectObject和DeleteObject函数
  16. latex数学公式(行内(间)公式标注/希腊字母/数学函数/配对括号/定理环境
  17. 在查询分析器里执行数据库的备份和还原操作
  18. 帮忙哥们选购笔记本电脑3000-4000
  19. Java IO流 详解(字节流、字符流、输入流、输出流、刷新)
  20. 开源硬件maple驱动安装问题

热门文章

  1. hadoop分布式文件系统hdfs的概念和特性
  2. RocketMQ历史版本下载
  3. Mac的控制台命令无法使用command not found
  4. SmartRF Flash Programmer1.6.2打不开程序界面问题
  5. question: student_link
  6. 2019b官方手册中文版_数据科学|「最全」实至名归,NumPy 官方早有中文教程,结合深度学习,还有防脱发指南...
  7. 微软sccm服务器,System Center 2012R2系列之SCCM部署
  8. prim算法_贪心算法详解(附例题)
  9. 编译实验(一)词法分析
  10. ubuntu11.04 安装sun-java6-jdk_Ubuntu下安装sun-java6-jdk和eclipse