# 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. 使用Camtasia制作魔性抖肩舞视频

    最近一首风魔各大视频网站的魔性舞蹈又来袭了!这首充满魔性节奏的舞蹈就是抖肩舞了,为了将我热爱的抖肩舞视频分享给大家,我必须使用Camtasia教程录制(Windows系统)软件来制作一个魔性抖肩舞视频 ...

  2. Folx专业版任务计划功能详解

    Folx专业版的任务计划功能允许用户以时间表的方式,制定下载计划.按照预先设定的时间计划,Folx会在指定的时间段内,自动开启或停止下载任务. 另外,用户还可以设置自动关机功能.当计划下载任务停止时, ...

  3. SpringBoot---WebMvcConfigurer详解

    1. 简介 2. WebMvcConfigurer接口 2.1 addInterceptors:拦截器 2.2 addViewControllers:页面跳转 2.3 addResourceHandl ...

  4. Ubuntu16.04配置静态ip

    1.安装好ubuntu16.04虚拟机之后,首先按照下图的步骤进行: 首先需要打开虚拟网络编辑器,点击VMnet8的虚拟网卡,如果没有这个网卡,只需在编辑虚拟机设置里面将网络适配器类型改为NAT模式, ...

  5. iPhone/iOS开启个人热点的相关位置调整小结

    冬至已到,圣诞将近,最近公司项目实在太多,三四个项目反复的切换真的让人焦头烂额,趁今天有点空,把维护的三个项目顺利送出,刚好可以缕缕思路,记录一下最近遇到的问题.说不着急那是假的,客户一天天的催的确实 ...

  6. 用FL Studio制作反向人声音效(Vocal Chops)

    人声切片在各类电子音乐中都被广泛运用,在FL Studio20中我们也可以运用其自带的插件来制作属于我们自己的人声切片效果.在学完这篇文章后你就可以动手做出如Kygo.Martin Garrix等大牌 ...

  7. Nebula Flink Connector 的原理和实践

    摘要:本文所介绍 Nebula Graph 连接器 Nebula Flink Connector,采用类似 Flink 提供的 Flink Connector 形式,支持 Flink 读写分布式图数据 ...

  8. 关闭Win10窗口拖动到桌面边缘自动缩放功能

  9. PyQt(Python+Qt)学习随笔:树型部件QTreeWidget中的项编辑方法editTriggers、editItem和openPersistentEditor作用及对比分析

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 在树型部件QTreeWidget中,有三种方法触发进行项数据的编辑:editTriggers触发编辑 ...

  10. 安卓学习02---room

    title: 安卓学习02---room date: 2020-02-02 18:20:13 tags: room是jetpack的组件,可以使程序流畅的访问sqlite. <!--more - ...