Python列表之班荆道故
列表list初识
列表是python的基础数据类型之一 ,它是以[ ]括起来, 每个元素用' , '隔开而且可以存放各种数据类型:
list列表的定义:
list_ = []
list_1 = ["aaa","bbb","cccc","ddd"]
list_2 = [1,2,3,4,5]
list_3 = ["abc",145,True,["小明","小红",278,33.9],25.9]
列表的索引和切片操作:
list_1 = ['a','b','c','d','e','f','g','h','k']
# 列表的索引
print(list_1[0],list_1[1],list_1[2])
# 索引-1代表最后一个元素,-2代表倒数第二个元素依次类推
print(list_1[-1],list_1[-2],list_1[-3])
# 列表的切片[start,end,sep]
# 切片 1
print(list_1[0:3])
# 切片 2 设置步长,隔一个打印一个
print(list_1[0:-1:2])
# 切片 3 倒叙打印
print(list_1[-1:0:-1])
# 切片 3 倒叙打印,隔一个打印一个
print(list_1[-1:0:-2])
# 打印内如如下
a b c
k h g
['a', 'b', 'c']
['a', 'c', 'e', 'g']
['k', 'h', 'g', 'f', 'e', 'd', 'c', 'b']
['k', 'g', 'e', 'c']
列表的访问与字符串切片类似,通过索引访问列表元素,列表的切片也与字符串类似。
列表的常用方法
append(object):向列表的末尾追加元素
list_1 = ["abc",145,True,["小明","小红",278,33.9],25.9]
list_1.append("我是追加的")
# 打印如下内容:
['abc', 145, True, ['小明', '小红', 278, 33.9], 25.9, '我是追加的']
clear():清空列表。
list_1 = ['a','b','c','d','e','f','g','h','k']
print(list_1)
print(list_1.clear())
# 打印内如如下
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'k']
None
extend(可迭代对象):列表中迭代添加数据:
list_1 = ['a','b','c']
list_1.extend("我是迭代的")
print(list_1)
# 打印内容如下
['a', 'b', 'c', '我', '是', '迭', '代', '的']
注意extend(参数)必须是可迭代的对象如list、str、dict、tuple、set等,如整形、bool是不可迭代的所以不能用作参数
insert(index,object):列表中插入元素。
参数:
index:要插入的位置。
object:插入的数据。
示例:
list_1 = ['a','b','c']
list_1.insert(2,"我是插入的")
print(list_1)
# 如果用户输入的索引超过列表的范围则添加到列表的末尾。
list_1.insert(5,'哈哈')
print(list_1)
# 打印内容如下
['a', 'b', '我是插入的', 'c']
['a', 'b', '我是插入的', 'c', '哈哈']
注意:如果用户输入的索引超过列表的范围则添加到列表的末尾。
del: 删除列表,或者删除列表中的元素。
list_1 = ['a','b','c']
del list_1[0] # 删除列表的第一个元素
print(list_1)
del list_1 # 删除列表
print(list_1)
# 打印内容如下
['b', 'c']
Traceback (most recent call last):
File "C:\Users\id_iot\Desktop\1.py", line 5, in <module>
print(list_1)
NameError: name 'list_1' is not defined
注意:del是没有返回值的。
pop(index):删除列表元素,如果没找到索引报错。
list_1 = ['a','b','c','d','e']
# 删除列表的第三个元素
buf = list_1.pop(2)
print(f'删除的元素是:{buf}')
# 删除列表的最后一个元素
buf = list_1.pop()
print(f'删除的元素是:{buf}')
# 如果删除的索引超过范围会报错。
buf = list_1.pop(10)
print(list_1)
# 打印内容如下
删除的元素是:c
删除的元素是:e
Traceback (most recent call last):
File "C:\Users\id_iot\Desktop\1.py", line 9, in <module>
buf = list_1.pop(10)
IndexError: pop index out of range
注意:pop()删除是有返回值的,可以用一个变量来接收被删除的数据。
remove(object):根据元素名删除元素。
list_1 = ['a','b','c','d','e']
# 删除列表的一个元素
list_1.remove('b')
print(list_1)
# 打印内如如下
['a', 'c', 'd', 'e']
copy():拷贝整个列表(浅拷贝)。
list_1 = ['a','b',['c','d']]
temp = list_1.copy()
# 像列表中添加一个元素
list_1.append('Hello')
print(f'list_1:{list_1}')
print(f'temp:{temp}')
print('-'*50)
# 像列表中的嵌套列表添加元素
list_1[2].append('word')
print(f'嵌套列表添加元素后list_1:{list_1}')
print(f'嵌套列表添加元素后temp:{temp}')
# 打印内如如下
list_1:['a', 'b', ['c', 'd'], 'Hello']
temp:['a', 'b', ['c', 'd']]
--------------------------------------------------
嵌套列表添加元素后list_1:['a', 'b', ['c', 'd', 'word'], 'Hello']
嵌套列表添加元素后temp:['a', 'b', ['c', 'd', 'word']]
reverse():列表倒序,将列表中的内容倒过来(是对列表索引位置的操作,而不是按元素将升序转为降序)
list_1 = ['a','b',['c','d']]
list_1.reverse()
print(list_1)
# 打印内容如下
[['c', 'd'], 'b', 'a']
注意:reverse()函数只能操作本层元素,对于内部嵌套的数据不能进行改变。
sort(key=None, reverse=False):排序,字符串是按照ASCII码表进行排序。
参数:
key:排序规则,是一个函数名,或者是lambda。
reverse:如果为True降序,为Flase是升序。
示例:
list_1 = [1,8,3,6,2]
list_1.sort() # 默认升序排列
print(f'升序排序:{list_1}') list_1.sort(reverse = True) # 降序排列
print(f'降序排序:{list_1}') print('-'*40) temp = ['a','z','b','f','d']
temp.sort() # 默认升序排列
print(f'升序排序:{temp}') temp.sort(reverse = True) # 降序排列
print(f'降序排序:{temp}') print('-'*40) buf = [(1,2),(1,8),(1,3),(1,6)]
buf.sort(key=lambda i:i[1]) # 使用匿名函数的方式进行升序排列
print(f'升序排序:{buf}')
def fun(em): # 排序规则
return em[1]
buf.sort(key=fun,reverse=True) # 使用函数的方式进行降序排列
print(f'降序排序:{buf}') buf = [1,2,'a']
buf.sort() # 如果列表的元素不是同类型的会报错
print(buf)
# 打印内容如下
升序排序:[1, 2, 3, 6, 8]
降序排序:[8, 6, 3, 2, 1]
----------------------------------------
升序排序:['a', 'b', 'd', 'f', 'z']
降序排序:['z', 'f', 'd', 'b', 'a']
----------------------------------------
升序排序:[(1, 2), (1, 3), (1, 6), (1, 8)]
降序排序:[(1, 8), (1, 6), (1, 3), (1, 2)]
Traceback (most recent call last):
File "C:\Users\id_iot\Desktop\1.py", line 29, in <module>
buf.sort() # 如果列表的元素不是同类型的会报错
TypeError: '<' not supported between instances of 'str' and 'int'
sort()排序只支持同种类型进行对比,不支持其它类型进行对比排序。例如字符串只能和字符串相比,整形只能和整形相比较。
count(value):统计元素value出现的次数,如果找不到返回0。
list_1 = [1,8,2,6,5,2]
print(f'2出现的个数:{list_1.count(2)}')
print(f'9出现的个数:{list_1.count(9)}')
# 打印内容如下
2出现的个数:2
9出现的个数:0
index(value,start,end):如果只指定value,会在整个列表中进行查找value的索引(找到第一个元素的索引后便不再继续查找)。如果找不到value会报错。可以指定start和end来指定查找范围。.
value:要查找的元素。
start:查找的起始位置。
end:结束位置。
示例:
list_1 = [1,8,2,6,5,2,9]
print(f'2的索引是:{list_1.index(2)}')
print(f'2从索引3到末尾的索引是:{list_1.index(2,3,-1)}')
print(f'7的索引是:{list_1.index(7)}')
# 打印内容如下
2的索引是:2
2从索引3到末尾的索引是:5
Traceback (most recent call last):
File "C:\Users\id_iot\Desktop\1.py", line 4, in <module>
print(f'7的索引是:{list_1.index(7)}')
ValueError: 7 is not in list
range(start,end,step):与列表的切片类似,从一个范围内提取数据。正常start应小于end也就是从小到大的原则,如果start大于end,需要将step设置为负数。下面是使用实例:
for i in range(100): # 打印0到100
print(i) for i in range(100,0,-1): # 倒序打印100-1
print(i) for i in range(1,100,2): # 打印1-100所有奇数
print(i) for i in range(2,101,2): # 打印1-100所有偶数
print(i)
下一篇:python 字典,集合:https://www.cnblogs.com/caesar-id/p/10225838.html
Python列表之班荆道故的更多相关文章
- python 列表排序
转自http://www.iplaypython.com/jinjie/jj114.html reverse()方法 将列表中元素反转排序,比如下面这样>>> x = [1,5,2, ...
- python列表、元祖、字典
python列表 ['a','1','vs2'] 里面的值可以改 python元祖 ('a','1','css','sdf12') 里面的值不能改 python字典 {'s ...
- Python列表、元组、字典和字符串的常用函数
Python列表.元组.字典和字符串的常用函数 一.列表方法 1.ls.extend(object) 向列表ls中插入object中的每个元素,object可以是字符串,元组和列表(字符串“abc”中 ...
- Python 列表
python 列表 列表的特点 1.列表是一种可变的数据类型,这点是跟元组有区别的 2.列表中的值是有序的,并且可存放重复的值,这点跟set有区别的 3.python中的列表类似于其它语言中的数组 4 ...
- python 列表生成器
python 列表生成器 列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式. 一个循环 在C语言等其他语言中,for循环一般是这样的 ...
- [转载] Python 列表(list)、字典(dict)、字符串(string)常用基本操作小结
创建列表 sample_list = ['a',1,('a','b')] Python 列表操作 sample_list = ['a','b',0,1,3] 得到列表中的某一个值 value_star ...
- Python 列表如何获得一个指定元素所在的下标
在使用Python3.4读取txt数据到列表,由于编码问题,读取到的数据通常会出现'\ufeffX'(x为你想要的数据).这时候如果需要把列表中的数据由字符串转换到数值型的数据的进行数据分析的话就会出 ...
- python列表的常用操作方法
主要介绍了Python中列表(List)的详解操作方法,包含创建.访问.更新.删除.其它操作等,需要的朋友可以参考下. 1.创建列表.只要把逗号分隔的不同的数据项使用方括号括起来即可 List = [ ...
- !!对python列表学习整理列表及数组详细介绍
1.Python的数组分三种类型:(详细见 http://blog.sina.com.cn/s/blog_6b783cbd0100q2ba.html) (1) list 普通的链表,初始化后可以通过特 ...
随机推荐
- vue框架中的Axios封装
function axios(options) { let promise = new Promise((resolve, reject) => { var xhr ...
- python数组并集交集补集
并集 a = ["a", "b", "c", "d"] b = ["b", "e" ...
- 【Spark篇】---Spark中资源和任务调度源码分析与资源配置参数应用
一.前述 Spark中资源调度是一个非常核心的模块,尤其对于我们提交参数来说,需要具体到某些配置,所以提交配置的参数于源码一一对应,掌握此节对于Spark在任务执行过程中的资源分配会更上一层楼.由于源 ...
- Python爬虫入门教程 6-100 蜂鸟网图片爬取之一
1. 蜂鸟网图片--简介 国庆假日结束了,新的工作又开始了,今天我们继续爬取一个网站,这个网站为 http://image.fengniao.com/ ,蜂鸟一个摄影大牛聚集的地方,本教程请用来学习, ...
- MySQL优化指南
当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化: 单表优化 除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分,拆分会带来逻辑.部署.运维的各种复杂度,一般以整型 ...
- CentOs~程序部署那些事
永久更新中…… 主要说一下在centos里,在安装程序和监控程序时,用到的一些常用的命令,希望可以帮到大家! 远程安装程序包:yum install 程序包名 下载程序包:wget 程序包地址 解压t ...
- 【转载】ASP.NET Core Web 支付功能接入 支付宝-电脑网页支付篇
转自:http://www.cnblogs.com/essenroc/p/8627775.html 这篇文章将介绍ASP.NET Core中使用 开源项目 Payment,实现接入支付宝-电脑网页支付 ...
- C++STL模板库适配器之stack容器
目录 适配器 一丶适配器简介 二丶栈(stack)用法 1.栈的常用方法 适配器 一丶适配器简介 Stl中的适配器,有栈 (stack) 队列 queue 根priority_queue 适配器都是包 ...
- -1-2 java 面向对象基本概念 封装继承多态 变量 this super static 静态变量 匿名对象 值传递 初始化过程 代码块 final关键字 抽象类 接口 区别 多态 包 访问权限 内部类 匿名内部类 == 与 equal
java是纯粹的面向对象的语言 也就是万事万物皆是对象 程序是对象的集合,他们通过发送消息来相互通信 每个对象都有自己的由其他的对象所构建的存储,也就是对象可以包含对象 每个对象都有它的类型 也就是 ...
- AppBoxFuture(三): 分而治之
系统数据量达到一定程度后必将采用分库分表的方式来提高系统性能,但传统的分库分表方式也必将带来更高的开发复杂程度.新一代的NewSql及NoSql数据库由于天生的分布式存储基因,既保证了能够横向扩展 ...