# 3 列表

# 1> 下面这就是一个列表
aabbccdd = ['ee','ff','gg']
# 列表可以储存数据,包含其中元素可以有很多,是可修改、有次序的。
# 下面展示一下两套索引。
# 0 1 2
# aabbccdd = ['ee','ff','gg']
# -3 -2 -1
# 可以用两种方式抽取列表的元素,如下。
h = aabbccdd[0]
print(h)
i = aabbccdd[-2]
print(i)
# 对应的输出结果如下
# ee
# ff
# 强调一点,索引从0开始。 # 2> 修改、添加和删除列表中的元素 # 修改可以用下列语句,通俗的讲应该叫替换。
aabbccdd[0] = 'kk'
print(aabbccdd)
# 输出结果为:['kk', 'ff', 'gg'] # 添加元素可以使用下面的方法,默认添加到列表的最后一位。
aabbccdd.append('uu')
print(aabbccdd)
# 输出结果为:['kk', 'ff', 'gg', 'uu'] # 习惯上,会先创建一个空列表。然后再用append()添加元素。 # 也可以使用方法insert()将元素插入到指定位置,具体如下。
aabbccdd.insert(1,'pp')
print(aabbccdd)
# 输出结果为:['kk', 'pp', 'ff', 'gg', 'uu'] # 如果知道元素的索引,可以直接用del 删除对应元素
del aabbccdd[0]
print(aabbccdd)
# 输出结果为:['pp', 'ff', 'gg', 'uu'] # 使用pop()删除元素,通俗讲是叫提取。默认提取最后一个元素。
popped_aabbccdd = aabbccdd.pop(1)
print(aabbccdd)
print(popped_aabbccdd)
# 输出结果为:
# ['pp', 'gg', 'uu']
# ff # 如果知道元素名称,可以用remove()直接删除。
# remove()不具有提取功能。
# 如果列表中有重复的元素,方法remove()只删除索引较小的那一个。
# 如果列表中有重复的元素就需要用if循环解决。
aabbccdd.append('gg')
print(aabbccdd)
aaccddee = aabbccdd.remove('gg')
print(aabbccdd)
print(aaccddee)
# 对应的结果如下:
# ['pp', 'gg', 'uu', 'gg']
# ['pp', 'uu', 'gg']
# None # 3> 列表排序
# 用方法sort()对列表进行排序,可以永久改变列表顺序。
aabbccdd.sort()
print(aabbccdd)
# 输出结果为:['gg', 'pp', 'uu']
# 传入reverse = True,可以相反顺序排序。
aabbccdd.sort(reverse = True)
print(aabbccdd)
# 输出结果为:['uu', 'pp', 'gg']
# 直接将列表传入sorted()可以临时改变列表排序,也同样适用于方法reverse,语句如下。
# print(sorted(aabbccdd,reverse = True))
# 方法reverse()可以倒着打印列表,但可以随时恢复到原来的顺序,只需要再调用这个方法即可。
aabbccdd.reverse()
print(aabbccdd)
# 对应结果如下:['gg', 'pp', 'uu'] # 4> 确定列表长度
# 使用方法len()可以确定列表长度。
print(len(aabbccdd))
# 输出结果为:3 # 5> 遍历列表
# 下面重新定义一个新的列表
abc = ['a','b','c','d','e']
for cc in abc:
print(cc)
# 简单两行代码就可以实现遍历的功能,结果如下
# a
# b
# c
# d
# e # 使用for时要注意后面有个冒号,如,for cc in abc:<---- # 6> 使用函数range()创建数值列表
# 可以使用list()和range()配合直接生成数值列表
numbers = list(range(1,10))
print(numbers)
# 注意,使用range()生成的数字是有头无尾的,所以上述代码的结果如下。
# [1, 2, 3, 4, 5, 6, 7, 8, 9] # 7> 对数字列表的简单统计
# 使用方法max()、min()、sum()对列表秋最大值,最小值和总和
print(min(numbers))
print(max(numbers))
print(sum(numbers))
# 结果如下。
# 1
# 9
# 45 # 8> 列表切片
# 切片就是说提取列表的一部分,且不改变原列表。
# 基本形式是:[起始索引:终止索引],也遵循有头无尾原则。
# 举例如下。
print(numbers[:]) #又叫复制列表
print(numbers[2:8])
print(numbers[:8])
print(numbers[:-1])
print(numbers[2:])
# 结果如下
# [1, 2, 3, 4, 5, 6, 7, 8, 9]
# [3, 4, 5, 6, 7, 8]
# [1, 2, 3, 4, 5, 6, 7, 8]
# [1, 2, 3, 4, 5, 6, 7, 8]
# [3, 4, 5, 6, 7, 8, 9]
# 请读者自行对比这五种切片的异同。 # 9> 元组
# 他是一种特殊的列表,规则限定其中的元素无法被改变,只能被再次赋值。
# 元组是用()表达
yuanzu1 = ('s','ss','sss')
yuanzu1['s'] = 'ssss'
# 这时,Python就会报错,如下。
# TypeError: 'tuple' object does not support item assignment
# 可以看到元组里的元素确实不能被修改。
# 但是对其做赋值操作是可以的。
yuanzu1 = ('s','ss','sss')
yuanzu1 = ('ssssss')
print(yuanzu1)
# 结果为:ssssss

【PY从0到1】第三节 列表的更多相关文章

  1. uWSGI参考资料(1.0版本的配置选项列表)

    Reference: http://blog.csdn.net/kevin6216/article/details/15378617 uWSGI参考资料(1.0版本的配置选项列表) 下面的内容包含了大 ...

  2. 【PY从0到1】 一文掌握Pandas量化基础

    # 2[PY从0到1] 一文掌握Pandas量化基础 # Numpy和pandas是什么关系呢? # 在我看来,np偏向于数据细节处理,pd更偏向于表格整体的处理. # 要记住的pd内部的数据结构采用 ...

  3. python manage.py runserver 0.0.0.0:8000

    python manage.py runserver 这种命令行,可以在服务器端输入IP:8000直接访问 在 python manage.py runserver 127.0.01:8000 在服务 ...

  4. Android(Lollipop/5.0) Material Design(四) 创建列表和卡片

    Material Design系列 Android(Lollipop/5.0)Material Design(一) 简单介绍 Android(Lollipop/5.0)Material Design( ...

  5. 从0开始学FreeRTOS-(列表与列表项)-3

    # FreeRTOS列表&列表项的源码解读     第一次看列表与列表项的时候,感觉很像是链表,虽然我自己的链表也不太会,但是就是感觉很像. 在`FreeRTOS`中,列表与列表项使用得非常多 ...

  6. iOS6.0下获取通讯录用户列表

    自iOS6.0后获取通讯录列表需要询问用户,经过用户同意后才可以获取通讯录用户列表.而且ABAddressBookRef的初始化工作也由ABAddressBookCreate函数转变为ABAddres ...

  7. 主攻ASP.NET MVC4.0之重生:Jquery Mobile 列表

    代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title ...

  8. ASP.NET MVC深入浅出系列(持续更新) ORM系列之Entity FrameWork详解(持续更新) 第十六节:语法总结(3)(C#6.0和C#7.0新语法) 第三节:深度剖析各类数据结构(Array、List、Queue、Stack)及线程安全问题和yeild关键字 各种通讯连接方式 设计模式篇 第十二节: 总结Quartz.Net几种部署模式(IIS、Exe、服务部署【借

    ASP.NET MVC深入浅出系列(持续更新)   一. ASP.NET体系 从事.Net开发以来,最先接触的Web开发框架是Asp.Net WebForm,该框架高度封装,为了隐藏Http的无状态模 ...

  9. 【PY从0到1】第六节 用户输入while循环

    # 6 第六节 用户输入while循环 # 1> 重要的函数--input() # 我们先讲解一下input():当Python碰到input()后会执行括号内的语句. # 随后等待用户的输入. ...

随机推荐

  1. H5时代leaflet中还在用DivIcon?

    前段时间写了篇<leaflet如何加载10万数据>的文章,有同学反应其中的Canvas-Markers插件不支持DivIcon.我们今天就来聊一聊,为什么这个插件不支持DivIcon,以及 ...

  2. 在IDM上设置防止过度抓取网站信息

    在使用Internet Download Manager(IDM)下载器时,有时会发现IDM自带的抓取功能过于强大,以至于有时会抓取一些无效的链接.那么,该如何避免IDM的过度抓取呢? 图1:IDM的 ...

  3. CorelDRAW多个文件如何批量导出JPG

    好多同学对于CorelDRAW 2018批量导出图片格式的操作不太了解.这种情况比较常见,比如设计了一本画册,在同一个文档中页面比较多,如果一页一页导出那将是一项巨大的工程,这时候我们就会想到CDR的 ...

  4. elasticsearch 使用同义词

    elasticsearch 使用同义词 使用环境 elasticsearch5.1.1 kibana5.1.1 同义词插件5.1.1 安装插件 下载对应的elasticsearch-analysis- ...

  5. python接口测试3-JSON格式

    什么是JSON? 一种轻量级的数据交换格式.它独立于语言和平台,JSON解析器和JSON库支持不同的编程语言.JSON具有自我描述性,很容易理解. 数据格式: { "name":& ...

  6. Centos7 安装python3 pip3

    Centos7 安装python3 pip3 安装python3.6 安装 python36   yum install python36 -y   查看版本 安装完成,查看一下python版本是否正 ...

  7. 解决YUM下Loaded plugins: fastestmirror Determining fastest mirrors 的错误问题

    最近想再购买一台虚拟服务器做项目测试,之前在西部数码购买的已经过期了,在同事的推荐下去搬瓦工购买了一台服务器,听他介绍在这里购买服务器很便宜($19.99/年)而且还是国外的,看着相比之前的确实挺便宜 ...

  8. Alpha冲刺-第五次冲刺笔记

    Alpha冲刺-冲刺笔记 这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzzcxy/2018SE2 这个作业要求在哪里 https://edu.cnblogs. ...

  9. 自学linux——20.Samba服务器的搭建

    Samba服务器的搭建 一.Samba的认识 1.Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件 2.Samba不仅用于Linux与windows系统直接的文件共享和打印共 ...

  10. PyQt(Python+Qt)学习随笔:QTabWidget选项卡部件设置tabsClosable后不能关闭选项卡的原因

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 QTabWidget的tabsClosable属性用于控制选项卡栏的每个选项卡是否显示关闭按钮,但显 ...