列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。例如:

 stus = ["zhangsan","lisi","wangwu","zhaoliu"]
nums = [2,4,5,7,3,6,9,12,34,23,33,454]
cities =["beijing","tianjin","henan",""]

第一个列表stus中有4个元素,分别是zhangsan、lisi、wangwu、zhaoliu,列表的索引也是从0开始,zhangsan的索引是0,lisi的索引是1,wangwu的索引是2,zhaoliu的索引是3,索引也可以用负数表示,最前面一个元素的索引是0,最后面一个元素的索引是-1;

1.访问list中的元素

使用下标索引来访问列表中的值,例如:

 stus = ["zhangsan","lisi","wangwu","zhaoliu"]
print(stus[3])

以上输出结果是:

zhaoliu

2.增加列表元素

(1)使用append()方法来添加列表项,其作用是在列表末尾增加一个元素,如下所示:

 cities= []   #  先定义一个空的list
cities.append("beijing") #在列表末尾增加一个元素
cities.append("tianjin")
print(cities) #以上运行结果是
['beijing', 'tianjin']

(2)使用insert()方法在列表指定的位置增加一个元素,如下:

 cities= ['beijing', 'tianjin']
cities.insert(0,"shanghai") #在列表索引为0的位置增加一个元素
print(cities) #以上代码运行结果是
['shanghai', 'beijing', 'tianjin']

3.删除列表元素

(1)使用pop方法删除指定位置的元素,例如:

 cities= ['beijing', 'tianjin',"henan","wuhan"]
cities.pop(0) #删除索引为0的元素
print(cities) #以上代码运行结果是
['tianjin', 'henan', 'wuhan']

(2)使用remove()方法删除指定的元素,例如:

 cities= ['beijing', 'tianjin',"henan","wuhan"]
cities.remove("beijing") #删除指定的元素
print(cities) #以上代码运行结果是
['tianjin', 'henan', 'wuhan']

(3)使用clear()方法清空列表,例如:

 cities= ['beijing', 'tianjin',"henan","wuhan"]
cities.clear()
print(cities) #以上代码运行结果是:
[] 列表被清空

 4.修改列表元素

修改列表元素时,需要使用指定元素的索引来进行修改,例如:

 cities= ['beijing', 'tianjin',"henan","wuhan"]
cities[1]="dongguan" #将索引为1的元素,修改为dongguan
print(cities) #以上代码运行结果是:
['beijing', 'dongguan', 'henan', 'wuhan']

字符串也可以使用下标进行取值,但是字符串是不可变量,不可以修改,例如:

 s = "xiehong"
print(s[0])
print(s[::-1])
s[2]="a"#这个运行会报错,字符串是不可变量,不可以修改 报错结果:
TypeError: 'str' object does not support item assignment

5.查看列表中的元素

(1)使用index()方法查找元素的索引,例如:

 cities= ['beijing', 'tianjin',"henan","wuhan"]
print(cities.index("henan"))#获取元素的下标,如果找不到那个元素的话,会报错
cities[1]="dongguan" #以上代码运行结果是:
2

(2)使用count()方法查看元素在列表中出现多少次,例如:

 cities= ['beijing', 'tianjin',"henan","wuhan","beijing","beijing"]
print(cities.count("beijing"))#查看元素在list里面出现多少次 #以上代码运行结果是:
3 # bejing这个元素在列表中出现了3次

(3)使用reverse()方法翻转列表,例如:

 cities= ['beijing', 'tianjin',"henan","wuhan"]
cities.reverse()#使用reverse方法翻转
print(cities) #以上代码运行结果是:
['wuhan', 'henan', 'tianjin', 'beijing']

(4)使用sort()方法对列表的元素进行排序,sort()方法的排序方法是升序排序,例如:

 nums = [2,4,5,7,3,6,9,12,34,23,33,454]
words = ["w","e","t","y","s","g","df","kea","a"] #字符串也可以安装首字母进行升序排序
words.sort()
nums.sort()
print(nums)
print(words) #以上代码运行结果是:
[2, 3, 4, 5, 6, 7, 9, 12, 23, 33, 34, 454]
['a', 'df', 'e', 'g', 'kea', 's', 't', 'w', 'y']

(5)使用sort(reverse=True)方法进行降序排序,例如:

 nums = [2,4,5,7,3,6,9,12,34,23,33,454]
words = ["w","e","t","y","s","g","df","kea","a"] #字符串也可以安照首字母进行降序排序
words.sort(reverse=True)
nums.sort(reverse=True)
print(nums)
print(words) #以上代码运行结果是:
[454, 34, 33, 23, 12, 9, 7, 6, 5, 4, 3, 2]
['y', 'w', 't', 's', 'kea', 'g', 'e', 'df', 'a']

 6.list切片操作

list中的元素都是有序的,所以在取出list中的元素时可以使用切片操作,例如:

(1)第一种取值方法:

 nums = ["baicai","luobo","xigua","lajiao"]
print(nums[1:3])#顾头不顾尾,从索引为1的地方取值,直到索引为3的地方,但不包括3 #以上运行结果是:
['luobo', 'xigua']

(2)第二种取值方法:

 nums = ["baicai","luobo","xigua","lajiao"]
print(nums[1:])#如果从某个下标开始,取到末尾结束 # #以上运行结果是:
['luobo', 'xigua', 'lajiao']

(3) 第三种取值方法:

 nums = ["baicai","luobo","xigua","lajiao"]
print(nums[:2])#如果是从头开始取,取到后面某个下标结束,那么开头的下标可以不写 # #以上运行结果是:
['baicai', 'luobo']

(4)第四种取值方法:

 nums = ["baicai","luobo","xigua","lajiao"]
print(nums[:])#取所有的 # #以上运行结果是:
['baicai', 'luobo', 'xigua', 'lajiao']

(5)根据步长取值:

 lis = list(range(1,21)) #生成0到20的list
print((lis[::2]))#2是步长,就是隔几个取一次的意思,如果步长是正数,是从左往右取值
print((lis[::-2]))#如果步长是负数,是从右边往左边取值 #以上运行结果是:
[1, 3, 5, 7, 9, 11, 13, 15, 17, 19] #步长为正数的结果
[20, 18, 16, 14, 12, 10, 8, 6, 4, 2] #步长为负数的结果

再举出一个容易糊涂的取值,但是一般也不这么写,例如:

 lis = list(range(1,21)) #生成0到20的list
print(lis[:18:-1])#-1倒序,开头没有取值,所以默认从20往左取值,取到18的下标(19),但不顾尾,所以19不取 #以上运行结果是:
[20]

最新文章

  1. 开源物联网通讯框架ServerSuperIO,成功移植到Windows10 IOT,在物联网和集成系统建设中降低成本。附:“物联网”交流大纲
  2. fabric
  3. Windows Azure 虚拟机备份
  4. ubuntu16.04操作练习&问题解决
  5. 如何区分监督学习(supervised learning)和非监督学习(unsupervised learning)
  6. 关于jdk环境变量配置成了1.6.0_39 32位jdk 的路径 cmd中java -version却还是显示 64位或者其他jdk 路径的解决方法
  7. Linux的常用基本命令。
  8. CAP理论与MongoDB一致性、可用性的一些思考
  9. PHP CodeBase: 生成N个不重复的随机数
  10. 一步一步从原理跟我学邮件收取及发送 3.telnet命令行发一封信
  11. Node入门教程(2)第一章:NodeJS 概述
  12. [LeetCode] Find Largest Value in Each Tree Row 找树每行最大的结点值
  13. Android和iOS中Cocos2D日志为什么会出现skip frames
  14. scrapy + selenium 的动态爬虫
  15. iOS 自定义一个常规的TabBar
  16. asp.net core mvc 在中间件中使用依赖注入问题:System.InvalidOperationException: Cannot resolve scoped service 'IXXXService' from root provider.
  17. uniDAC 7.2.14直联sqlite存在问题
  18. lesson3 overfitting -fastai
  19. 3、利用GDB进行程序调试
  20. UVa 1151 买还是建

热门文章

  1. Linux基础:认识Linux
  2. 第二阶段:4.商业需求文档MRD:5.PRD-原型图
  3. 004使用u-boot烧写裸版程序
  4. Python 元类的基本介绍及使用
  5. mysql主从同步--读写分离。
  6. 2020年我国到底有多少程序员?现在学习java还来得及吗?
  7. 使用sqlmap中的tamper脚本绕过waf
  8. Echarts大数据可视化物流航向省份流向迁徙动态图,开发全解+完美参数注释
  9. 为什么TCP建立连接协议是三次握手,而关闭连接却是四次握手呢?
  10. python二维列表求解所有元素之和