列表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列表之班荆道故的更多相关文章

  1. python 列表排序

    转自http://www.iplaypython.com/jinjie/jj114.html reverse()方法 将列表中元素反转排序,比如下面这样>>> x = [1,5,2, ...

  2. python列表、元祖、字典

    python列表   ['a','1','vs2']       里面的值可以改 python元祖   ('a','1','css','sdf12')   里面的值不能改 python字典   {'s ...

  3. Python列表、元组、字典和字符串的常用函数

    Python列表.元组.字典和字符串的常用函数 一.列表方法 1.ls.extend(object) 向列表ls中插入object中的每个元素,object可以是字符串,元组和列表(字符串“abc”中 ...

  4. Python 列表

    python 列表 列表的特点 1.列表是一种可变的数据类型,这点是跟元组有区别的 2.列表中的值是有序的,并且可存放重复的值,这点跟set有区别的 3.python中的列表类似于其它语言中的数组 4 ...

  5. python 列表生成器

    python 列表生成器 列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式. 一个循环 在C语言等其他语言中,for循环一般是这样的 ...

  6. [转载] Python 列表(list)、字典(dict)、字符串(string)常用基本操作小结

    创建列表 sample_list = ['a',1,('a','b')] Python 列表操作 sample_list = ['a','b',0,1,3] 得到列表中的某一个值 value_star ...

  7. Python 列表如何获得一个指定元素所在的下标

    在使用Python3.4读取txt数据到列表,由于编码问题,读取到的数据通常会出现'\ufeffX'(x为你想要的数据).这时候如果需要把列表中的数据由字符串转换到数值型的数据的进行数据分析的话就会出 ...

  8. python列表的常用操作方法

    主要介绍了Python中列表(List)的详解操作方法,包含创建.访问.更新.删除.其它操作等,需要的朋友可以参考下. 1.创建列表.只要把逗号分隔的不同的数据项使用方括号括起来即可 List = [ ...

  9. !!对python列表学习整理列表及数组详细介绍

    1.Python的数组分三种类型:(详细见 http://blog.sina.com.cn/s/blog_6b783cbd0100q2ba.html) (1) list 普通的链表,初始化后可以通过特 ...

随机推荐

  1. visualsvn的迁移及svn的一些问题

    从A服务器将visualsvn的内容迁移到B服务器的visualsvn. 1 在B服务器上安装visualsvn 到visualsvn官网https://www.visualsvn.com/下载vis ...

  2. spark对elasticsearch增删查改

    增 新建一个 dataframe ,插入到索引 _index/_type ,直接调用 saveToEs ,让 _id 为自己设定的 id: import org.elasticsearch.spark ...

  3. Python之高级特性

    一.切片 L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack']取出前三个元素 , 笨方法就是通过下标一个一个获取 [L[0], L[1], L[2]]Pyt ...

  4. qt实现头像上传功能

    想必大家都使用过qt的自定义头像功能吧,那么图1应该不会陌生,本片文章我就是要模拟一个这样的功能,虽然没有这么强大的效果,但是能够满足一定的需求. 图1 qq上传图片 首先在讲解功能之前,我先给出一片 ...

  5. redis 系列20 服务器下

    二. serverCron函数 2.3 更新服务器每秒执行命令次数 serverCron函数中的trackOperationsPerSecond函数会以每100毫秒一次的频率执行,这个函数以抽样计算的 ...

  6. Lucene 08 - 什么是Lucene的相关度排序 + Java API调整相关度

    目录 1 什么是相关度 2 相关度评分 3 相关度设置 3.1 更改相关度的需求 3.2 实现需求-设置广告 1 什么是相关度 概念: 相关度指两个事物之间的关联关系(相关性). Lucene中指的是 ...

  7. idea启动TOMCAT html 乱码

    在运行/调试 配置对话框的Startup/Connection面板中, 勾选Pass environment variables. 并添加一个environment variable, Name填 J ...

  8. [开发技巧]·TensorFlow中numpy与tensor数据相互转化

    [开发技巧]·TensorFlow中numpy与tensor数据相互转化 个人主页–> https://xiaosongshine.github.io/ - 问题描述 在我们使用TensorFl ...

  9. IDEA搭建Spring Boot项目

    所需工具 新建项目 创建一个login控制器 写入两个注释 import导入项会自动添加@RestController@RequestMapping(value = "/login" ...

  10. 【Java并发编程】Callable、Future和FutureTask的实现

    启动线程执行任务,如果需要在任务执行完毕之后得到任务执行结果,可以使用从Java 1.5开始提供的Callable和Future 下面就分析一下Callable.Future以及FutureTask的 ...