列表

列表是Python中最基本也是最常用的数据结构之一。列表中的每个元素都被分配一个数字作为索引,用来表示该元素在列表内所排在的位置。第一个元素的索引是0,第二个索引是1,依此类推。

Python的列表是一个有序可重复的元素集合,可嵌套、迭代、修改、分片、追加、删除,成员判断。

从数据结构角度看,Python的列表是一个可变长度的顺序存储结构,每一个位置存放的都是对象的指针。

对于这个列表 alist = [1, “a”, [11,22], {“k1”:”v1”}],其在内存内的存储方式是这样的:

创建方式

创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可

['1',2,'hello']  # 列表
('1',2,'hello') # 元组
{'1',2,'hello'} # 集合
{'name':'juran','age':18} for i in ['1',2,'hello']:
print(i) # 通过查看源码来看创建的方法
l = list(['1',2,'hello'])
print(l) l = [1, 2, 3]
l1 = [1, 'hello', 1.2]
print(l1)
-------------------------------------------------
list = [] # 定义空列表
list1 = ['physics', 1997, 2000]
list2 = [1, 2, 3]
list3 = ["a", "b", "c"]

访问列表内的元素

列表从0开始为它的每一个元素顺序创建下标索引,直到总长度减一 。要访问它的某个元素,以方括号加下标值的方式即可。注意要确保索引不越界,一旦访问的 索引超过范围,会抛出异常。所以,一定要记得最后一个元素的索引是len(list)-1。

>>> lis = ["a", "b", "c"]
>>> lis[0]
'a'
>>> lis[1]
'b'
>>> lis[2]
'c'
>>> lis[3]
Traceback (most recent call last):
File "<pyshell#7>", line 1, in <module>
lis[3]
IndexError: list index out of range

修改元素的值

直接对元素进行重新赋值。

>>> lis[0]
'a'
>>> lis[0] = "d"
>>> lis[0]
'd'

删除元素

使用del语句或者remove(),pop()方法删除指定的元素。

>>> lis = ["a", "b", "c"]
>>> del lis[0] # 根据索引删除
>>> lis
['b', 'c']
>>> lis.remove("b") # 直接根据值进行删除
>>> lis
['c']
>>> lis.pop() # 弹出最后一个
'c'
>>> lis
[] l1 = [1, 'hello', 1] l2 = l1.pop(1) # 根据索引来弹出 1为索引
print(l2)

列表的特殊操作

语句 							结果 								描述
[1, 2, 3] + [4, 5, 6] [1, 2, 3, 4, 5, 6] 组合两个列表
l1 = [1, 2, 3]
l2 = [4, 5, 6]
print(l1.__add__(l2)) # 底层调用了__add__方法 ['Hi!'] * 4 ['Hi!', 'Hi!', 'Hi!', 'Hi!'] 列表的乘法
l1 = [1, 2, 3]
print(l1.__mul__(3)) 3 in [1, 2, 3] True 判断元素是否存在于列表中
l1 = [1, 2, 3]
print(l1.__contains__(1)) for x in [1, 2, 3]: print x, 1 2 3 迭代列表中的每个元素

列表的常用函数

l1 = [1, 2, 3]
函数 作用
len(list) 返回列表元素个数,也就是获取列表长度 l1.__len__()
max(list) 返回列表元素最大值 max(l1) max(1,2,3,4)
min(list) 返回列表元素最小值
list(seq) 将序列转换为列表 >>> s = list((1, "a", "b", 2))
>>> s
[1, 'a', 'b', 2]
>>> max(s) # 不能混合不同类型进行最大最小求值
Traceback (most recent call last):
File "<pyshell#20>", line 1, in <module>
max(s)
TypeError: '>' not supported between instances of 'str' and 'int'

排序和反转

list.reverse()  将列表反转 修改本身 *IN PLACE*
list.sort() 排序,默认升序
如果列表内的元素全为数字,或者字母排序没有问题。
如果字母和数字都有的情况下,排序会报错
list.sort(reverse=True) 降序排列

切片--也叫截取

切片指的是对序列进行截取,选取序列中的某一段。

切片的语法是: list[start:end]

以冒号分割索引,start代表起点索引,end代表结束点索引。省略start表示以0开始,省略end表示到列表的结尾。注意,区间是左闭右开的!

如果提供的是负整数下标,则从列表的最后开始往头部查找。例如-1表示最后一个元素,-3表示倒数第三个元素。

切片过程中还可以设置步长,以第二个冒号分割,例如list[3:9:2],表示每隔多少距离取一个元素。

l3 = ['a','b','c','d','e','f']
print(l3[1])
print(l3[2])
print(l3[1:3])
print(l3[:3])
print(l3[2:])
print(l3[:]) # 复制列表
print(l3[::2]) # 隔一个一取 a[-1] 8
a[-5:] [4,5,6,7,8]
a[::-1] 想当于逆序输出 [8, 7, 6, 5, 4, 3, 2, 1]
a[1:5:2] [2,4]

多维列表(嵌套列表)

a = [[1,2,3],[4,5,6],[7,8,9]]
a[0][1]
2
a = [[1,2,3],[4,5,6],{"k1":"v1"}]
a[2]["k1"]
v1

列表的遍历

列表有好几种遍历方式:

a = [1,2,3,4,5,6]
for i in a: # 遍历每一个元素本身
print(i)
for i in range(len(a)): # 遍历列表的下标,通过下标取值
print(i, a[i])
x = 9
if x in a: # 进行是否属于列表成员的判断。该运算速度非常快。
print("True")
else:
print("False")

列表的内置方法

方法 				作用
append(obj) 在列表末尾添加新的对象
count(obj) 统计某个元素在列表中出现的次数
extend(seq) 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
index(obj) 从列表中找出某个值第一个匹配项的索引位置
insert(index, obj) 将对象插入列表
pop(obj=list[-1]) 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
remove(obj) 移除列表中某个值的第一个匹配项
reverse() 反向列表中元素
sort([func]) 对原列表进行排序
copy() 复制列表
clear() 清空列表,等于del lis[:]

注意:其中的类似 append,insert, remove 等方法会修改列表本身,并且没有返回值(严格的说是返回None)。

Python数据类型-4 列表的更多相关文章

  1. python数据类型:列表List和Set

    python数据类型:列表List, Set集合 序列是Python中最基本的数据结构 序列中每个元素都分配一个数字,表示索引 列表的数据项不需要具有相同的类型        列表中的值可以重复并且有 ...

  2. Python数据类型list(列表)和tuple(元组)

    list Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素. 比如,列出班里所有同学的名字,就可以用一个list表示: >>> ...

  3. Python数据类型(列表)

    文章内容参考了教程:http://www.runoob.com/python/python-basic-syntax.html#commentform Python 列表(List) 序列是Pytho ...

  4. Python之路-python数据类型(列表、字典、字符串、元祖)操作

    一.列表: 列表的语法,以中括号开通和结尾,元素以逗号隔开.例如:name = [] 列表是以下标取值,第一个元素下标是0,第二个元素下标是1,最后一个元素下标是-1.   1.增加 #name = ...

  5. Python数据类型之列表

    一.基本数据类型 整数:int 字符串:str(注:\t等于一个tab键) 布尔值: bool 列表:list (元素的集合) 列表用[] 元祖:tuple 元祖用() 字典:dict注:所有的数据类 ...

  6. python 数据类型二 (列表和元组)

    一.列表 1.1 列表的介绍 列表是python的基本数据类型之一,其他编程语言也有类似的数据类型,比如JS中的数组,java中的数组等等,它是以[]括起来,每个元素用逗号隔开,而且可以存放各种数据类 ...

  7. python数据类型之列表(list)和其常用方法

    列表是python常用数据类型之一,是可变的,可由n = []创建,也可由n = list()创建,第一种方法更常用. 常用方法总结: # 创建方法 n = [] 或者 n = list() # in ...

  8. Python笔记_第一篇_面向过程_第一部分_5.Python数据类型之列表类型(list)

    Python中序列是最基本的数据结构.序列中的每个元素都分配一个数字(他的位置或者索引),第一个索引是0,第二个索引是1,依次类推.Python的列表数据类型类似于C语言中的数组,但是不同之处在于列表 ...

  9. Python学习(五) Python数据类型:列表(重要)

    列表: list是一组有序项目的数据结构. 列表是可变类型的数据,列表用[]进行表示,包含了多个以","分隔的项目. list=[] type(list) //<type ' ...

  10. Python基础-python数据类型之列表(四)

    列表 格式 namesList = [ 字符串,数字,列表,元祖,集合] 列表中的元素可以是不 同类型的 列表的相关操作 列表中存放的数据是可以进行修改的,比如"增"." ...

随机推荐

  1. Go递归函数

    package main import "fmt" func main() { /* 递归函数(recursion):一个函数自己调用自己,就叫做递归函数. 递归函数要有一个出口, ...

  2. layuiAdmin pro v1.x 【单页版】开发者文档

    layuiAdmin std v1.x [iframe版]开发者文档 题外 该文档适用于 layuiAdmin 专业版(单页面),阅读之前请务必确认是否与你使用的版本对应. 熟练掌握 layuiAdm ...

  3. 树莓派4B踩坑指南 - (11)免费搭建网站(宝塔,花生壳)

    目录 宝塔 安装宝塔面板 登录及初始化设置 安装网站 花生壳 安装花生壳 设置花生壳 测试 问题(未解决但不影响使用) 网站统计 树莓派这么低的功耗,不用来当服务器总感觉有点浪费...完成效果:htt ...

  4. Integer数值小于127时使用==比较的坑

    Java在处理Integer时使用了一个缓存,其中缓存了-128到127之间的数字对应的Integer对象,所以在绝大多数情况下,当我们把2个小于128的Integer对象用==比较时,Java往往是 ...

  5. AMD R7 2700X 安装虚拟机

    自己组装的台式机,选用的是微星X470主板,该主板默认的虚拟化技术是关闭的,在bios中也不太容易找到,具体方法如下. [开机或重启]--[按住DEL进入BIOS]--[高级模式F7]--[选择OC] ...

  6. vue axios路由跳转取消所有请求 和 防止重复请求

    直接上干货 在发送第二次请求的时候如果第一次请求还未返回,则取消第一次请求,以保证后发送的请求返回的数据不会被先发送的请求覆盖. 或者是跳转路由的时候取消还未返回的请求 第一步: axios 怎么取消 ...

  7. 为什么局部内部类和匿名内部类只能访问 final 的局部变量?

    首先,我们看一个局部内部类的例子: class OutClass { private int age = 12; public void outPrint(final int x) { class I ...

  8. 5_6 团体队列(UVa540)<queue与STL其他容器的综合运用>

    先给出T个团体,并给出每个团体有多少人和每个人的编号,然后所有团体一起排队,排成一条大队列,排队的原则是,一个成员加入,如果这个成员所在的团体已经有人在排队了,那么他就加到他所在团体的最后面,而不是整 ...

  9. 创业学习---今日头条创业过程分析---HHR计划

    本文搜集和整理了今日头条创业的一些关键点的资料------by 春跃(本文的主要观点都是搜集整理,所以不得本人同意不得转载) 一,18年之前的今日头条创业时间表: 1,张一鸣参与创业的履历:酷讯,饭否 ...

  10. 【安全运维】Vim的基本操作

    i 插入模式 : 末行模式 a 光标后插入 A 切换行末 I 切换行首 o 换行 O 上一行 p 粘贴 u 撤销 yy 复制 4yy 复制四行 dd (剪切)删除一行 2dd (剪切)删除两行 D 剪 ...