python 列表全家桶(典藏版)

简介: python 列表全家桶(典藏版)

三岁和你一起学编程,最白的白话和你一起学!


什么是列表



列表(list)是包含0个或多个对象引用的有序序列,属于序列类型。

列表长度内容可以自由变换,列表的增加,删除,变换都比较方便,没有长度限制,元素类型也可以随意,使用灵活。

列表是序列中经常使用,而且较为方便的一种。


列表的创建


列表是存储任意数据类型的集合,用[ ] 来表示开始和结束,各个元素之间采用逗号隔开。


实例;


>>> list1 = [] #创建空列表
>>> list2 = [1, 2, 3] #创建数字型列表
>>> list3 = ['三岁', '学', '编程']#创建字符串型列表
>>> list4 = ['三岁', 1, '编程', 2]#创建混合型列表


特点说明:


  • 列表名 = [元素1, 元素2,……]
  • 列表可以无元素,称为空列表,长度为0
  • 列表中的数据类型为任意,可以不同
  • 列表可以使用len() 函数取得类表长度
  • 列表可以修改长度也会随之改变


len() 函数的实例


>>>len(list1)
>0
>>>len(list2)
>3
>>>len(list3)
>3
>>>len(list4)
>4


list() 函数说明


list() 函数和int() 函数相似,可以把其他类型的内容转换为列表

但是不是所有的数据类型都可以转换,主要是转换字符串和元组类型。

其中 整型和浮点型是绝对不行的


#判定整型和浮点型
>>>print(type(list(12))) #type() 检测数据类型
>TypeError: 'int' object is not iterable
>>>print(type(list(12.0)))
>TypeError: 'flost' object is not iterable
#查看元组和字符串产生的结果及类型
>>>print(type(list()))
><class 'list'>
>>>print(list())
>[]
>>>print(type(list('三岁学编程')))
><class 'list'>
>>>print(list('三岁学编程'))
>['三', '岁', '学', '编', '程']


列表切片


切片就如同烧菜时把菜切片取得其中一部分的操作。

列表的切片是通过索引的方式来访问所需要的内容


切片索引


切片的索引分为顺序索引与逆序索引


顺序索引第一位从0开始往后递推
  逆序索引最后一位从-1开始往前递推


来,上图,简明易懂


20200327112731351.jpg


列表元素访问


列表元素用[ ]进行访问,通过[ : ]来获取响应的元素或元素块

此处也符合前闭后开原则

emmm


话不多说,上例子


list1 = ['三', '岁', '学', '编', '程']
>>>print(lsit1[0])#0位的内容
>三
>>>print(lsit1[1])#1位置上的内容
>岁
>>>print(lsit1[:])#全部的内容
>['三', '岁', '学', '编', '程']
>>>print(lsit1[2:5])#位置2-4上的内容(合前闭后)
>['学', '编', '程']
>>>print(lsit1[::-1])#步长为-1,列表倒序输出
>['程', '编', '学', '岁', '三']
>>>print(list1[::2])#步长为2
>['三', '学', '程']
>>>print(lsit1[2:])#2位置后面的全部内容
>['学', '编', '程']
>>>print(lsit1[-2:])#-2位置后面的全部内容
>['编', '程']
>>>print(lsit1[:-2])#输出-2位置前的内容,不包括-2位
>['三', '岁', '学']
>>>print(list1[:2])#输出2位置前的内容不包括2
>['三', '岁']


整理:


  • [a: b :c] a为初始位置,b为结束位置(不包含),c为步长
  • [ ] 之间不能为空
  • [ : ] 为冒号,省略其他内容为全部
  • [a] 为a位置的内容
  • [a:]为a位置开始后面所有的内容
  • [:b]为b前面所有的内容,不包括b
  • [::c]步长为c,如果是-1则反向输出

**注意正序是从0开始的 * 3(重要的话说3遍)


切片示例


利用for循环,len() 函数,把内容分行输出

list1 = ['三', '岁', '学', '编', '程']
for i in list1:  #循环list1列表
    print(f'{i}')
print(f'共有{len(list1)}个元素')使用format函数(小编的是3.7.4的可以用缩写)
# print('{}'.format(i)) #非缩写
#print('共有{}个元素'.format(len(list1)))
结果:
共有5个元素



列表中元素的查找


列表中的元素怎么查找?

in 和 not in

python 提供了in 和 not in 来判断元素是否在列表中

in判断:在返回 True 不在 返回False


list1 = ['三', '岁', '学', '编', '程']
i = '三'
j = '叁'
print(i in list1)
print(j in list1)
print(i not in list1)
print(j not in list1)
结果:
True
False
False
True


index() 函数


index() 函数是查看列表中的某值的第一个匹配项

使用方法:list.index(obj)

列表.index(元素) 结果:返回元素的第一个匹配值

如果没有值则会报错


list1 = ['三', '岁', '学', '编', '程']
i = '三'
j = '叁'
print(list1.index(i))
print(list1.index(j))
结果
0
ValueError: '叁' is not in list


该函数只匹配第一位!!!


替换列表元素


使用切片把指定位置的内容进行赋值即可

ls[ i : j : z ]


list1 = ['三', '岁', '学', '编', '程']
list1[0] = '叁'
print(list1)
结果:
['叁', '岁', '学', '编', '程']
list1[0:2] = '三叁'
print(list1)
结果:
['三', '叁', '学', '编', '程']
list1[::2] = '三岁学'
print(list1)
结果:
['三', '岁', '岁', '编', '学']


添加列表元素


小编所知添加方式共有4中

  • 自加 ls += lt
  • append()
  • exted()
  • insert()
自加 ls += lt

ls += lt 等同于 ls = ls + lt


list1 = ['三', '岁', '学']
list2 = ['编', '程']
list1 +=list2
print(list1)
结果
['三', '岁', '学', '编', '程']
------------------------------
list1 = ['三', '岁', '学']
list2 = ['编', '程']
list1 = list1 + list2
print(list1)
结果
['三', '岁', '学', '编', '程']


append() 函数


append() 函数是在列表最后添加一个元素

使用方法:ls.append(x) 在ls列表后加上元素x

list1 = ['三', '岁', '学', '编']
list1.append('程')
print(list1)
结果:
['三', '岁', '学', '编', '程']


注意:加在最后!!!


extend() 函数


extend() 函数 在列表最后添加多个元素 与自加+= 类似但是更推荐

使用方法:ls.extend(lt) 在列表最后添加lt内容


list1 = ['三', '岁', '学']
list1.extend(['编','程'])
print(list1)
结果:
['三', '岁', '学', '编', '程']


注意:也是加在最后!!! 添加内容为一个字符串或一个列表


insert() 函数


insert() 函数在列表指定位置添加一个函数

使用方法:ls.insert(i,x) 在ls列表的i位置添加元素x


list1 = ['三',  '学', '编', '程']
list1.insert(1,'岁')
print(list1)
结果:
['三', '岁', '学', '编', '程']


注意:位置从0开始计数 ,添加一个元素


元素重复输出——*=


*=和+=类似

ls *= n 使 列表元素重复n次


list1 = ['三']
list1 *= 3
print(list1)
结果:
['三', '三', '三']


列表内容删除


del方法


del常用的删除方式,但是完全删除!!!

del ls[i:j] 等价于 ls[i:j] = [] 删除i到j

def ls[i:j:z] 删除i到j步长为z的内容


list1 = ['三', '岁', '学', '编', '程']
del list1[0]
print(list1)
结果
['岁', '学', '编', '程']
del list1[0:3]
print(list1)
结果:
['编', '程']
del list1[::2]
print(list1)
结果:
['岁', '编']


注意:此次是前开后开,第i位到第j位


pop() 函数


pop() 函数把第i项中的元素取出并删除默认为-1(暨最后一位)

list1 = ['三', '岁', '学', '编', '程']
list1.pop()
print(list1)
list1.pop(2)
print(list1)
a = list1.pop()
print(a)
结果:
['三', '岁', '学', '编']
['三', '岁', '编']


注意:因为是先提取后输出所以有返回值

该内容较复杂,请您细品,细细品


remove() 函数


remove() 函数把某元素的第一个值进行删除,无返回值

使用方法:ls.remove(lt) 把ls列表中第一个lt元素删除


list1 = ['三', '岁', '学', '编', '程']
list1.remove('岁')
print(list1)
结果:
['三', '学', '编', '程']


注意:删除第一个,如果要全部删除需要进行循环

如果没有所要删除元素会报错


clear() 函数


clear() 函数 输出整个列表的元素

使用方法:ls.clear()


list1 = ['三', '岁', '学', '编', '程']
list1.clear()
print(list1)
结果:
[]


列表计算


最大值 max() 函数


max() 函数 有返回值,返回值为最大值

使用方法:max(list) 返回lsit的最大值

list1 = ['三', '岁', '学', '编', '程']
print(max(list1))
list2 = [16, 13, 28, 58, 85, 91]
print(max(list2))
结果:
91


emmm为什么是编字呢???

难道它的笔画多???

nonono

这个是根据他的Unicode编码的值来决定的(比Ascii编码范围广量大)


最小值 min() 函数


min() 函数返回最小值

使用方法:同max()

list1 = ['三', '岁', '学', '编', '程']
print(min(list1))
list2 = [16, 13, 28, 58, 85, 91]
print(min(list2))
结果:
13


求和 sum()


sum() 函数,返回最小值

使用方法:sum(list,i) 返回list的和,如果有i参数就在最后结果中加上


list2 = [16, 13, 28, 58, 85, 91]
print(sum(list2))
print(sum(list2, 100))
结果
291
391


注意:不支持字符串求和


列表排序


sort() 函数


对列表进行排序,可以是正序也可以是降序

使用方法:list.sort(self=None,key=None,reverse =False)


self,key方法比较复杂

self 可选,使用该参数的方法进行排序

key 可选,yonglai比较,只有一个具体参数

reverse True降序,False升序


list2 = [16, 13, 28, 58, 85, 91]
list2.sort()
print(list2)
list2.sort(reverse=True)
print(list2)
结果:
[13, 16, 28, 58, 85, 91]
[91, 85, 58, 28, 16, 13]


reverse() 函数


reverse() 函数 对序列进行反向排序

使用方法:list.reverse() 直接改变list类表的元素顺序


list2 = [16, 13, 28, 58, 85, 91]
list2.reverse()
print(list2)
结果:
[91, 85, 58, 28, 13, 16]


注意:不能够选择正序或倒叙,只能够反向排序


list[::-1] 切片


通过切片获取

list1 = ['三', '岁', '学', '编', '程']
>>>print(lsit1[::-1])#步长为-1,列表倒序输出
>['程', '编', '学', '岁', '三']


列表的嵌套


列表中的元素可以是各种类型的那么列表呢?

emmm

我肚子里面有一个我自己???

感觉怪怪的

但是貌似肚子里面的不是我自己

列表是可以嵌套的

使用方法:

列表名=[[元素1,元素2,…],[元素1,元素2, …],…… ]


list1 = [['三', '岁'], ['学', '编', '程']]


嵌套列表的读取


emmm和列表一样的

就多了一层


list1 = [['三', '岁'], ['学', '编', '程']]
print(list1[0])
print(list1[0][0])
print(list1[0][0:2])
print(list1[1][2])
结果:
['三', '岁']
['三', '岁']


自己理解一下吧

不懂的留言吧,在线解答

嵌套列表的遍历

可以采用循环语句和嵌套循环语句

来获取


list1 = [['三', '岁'], ['学', '编', '程']]
for i in list1:
    print(i)
结果
['三', '岁']
['学', '编', '程']
-------------------
list1 = [['三', '岁'], ['学', '编', '程']]
lt = 0
for i in list1:
    for j in i :
        print(j,end = ' ')
    lt += 1
    print()
结果:
三 岁 
学 编 程


列表的基础及函数就先到这里,例子比较多,大家细品,细细品。

小编辛苦,但是感觉挺值,点个赞,鼓励一下

收藏一波,下次就刷不到啦!!!

谢谢大咖!

目录
相关文章
|
6天前
|
数据挖掘 大数据 数据处理
python--列表list切分(超详细)
通过这些思维导图和分析说明表,您可以更直观地理解Python列表切分的概念、用法和实际应用。希望本文能帮助您更高效地使用Python进行数据处理和分析。
22 14
|
8天前
|
数据挖掘 大数据 数据处理
python--列表list切分(超详细)
通过这些思维导图和分析说明表,您可以更直观地理解Python列表切分的概念、用法和实际应用。希望本文能帮助您更高效地使用Python进行数据处理和分析。
23 10
|
25天前
|
数据处理 开发者 Python
Python中的列表推导式:简洁高效的数据处理
在编程世界中,效率和可读性是代码的两大支柱。Python语言以其独特的简洁性和强大的表达力,为开发者提供了众多优雅的解决方案,其中列表推导式便是一个闪耀的例子。本文将深入探讨列表推导式的使用场景、语法结构及其背后的执行逻辑,带你领略这一特性的魅力所在。
|
28天前
|
开发者 Python
探索Python中的列表推导式:简洁而强大的工具
【10月更文挑战第41天】 在编程的世界中,效率与简洁是永恒的追求。本文将深入探讨Python编程语言中一个独特且强大的特性——列表推导式(List Comprehension)。我们将通过实际代码示例,展示如何利用这一工具简化代码、提升性能,并解决常见编程问题。无论你是初学者还是资深开发者,掌握列表推导式都将使你的Python之旅更加顺畅。
|
1月前
|
Python
探索Python中的列表推导式
【10月更文挑战第38天】本文深入探讨了Python中强大而简洁的编程工具——列表推导式。从基础使用到高级技巧,我们将一步步揭示如何利用这个特性来简化代码、提高效率。你将了解到,列表推导式不仅仅是编码的快捷方式,它还能帮助我们以更加Pythonic的方式思考问题。准备好让你的Python代码变得更加优雅和高效了吗?让我们开始吧!
|
2月前
|
Python
探索Python中的列表推导式
【10月更文挑战第20天】在编程世界里,时间就是一切。Python的列表推导式是节约时间、简化代码的一大利器。本文将带你深入理解并有效利用这一强大工具,从基础到高级用法,让你的代码更加简洁高效。
|
2月前
|
Python
SciPy 教程 之 SciPy 模块列表 7
`scipy.constants` 模块提供了常用的时间单位转换为秒数的功能。例如,`constants.hour` 返回 3600.0 秒,表示一小时的秒数。其他常用时间单位包括分钟、天、周、年和儒略年。
19 6
|
1月前
|
Python
SciPy 教程 之 SciPy 模块列表 13
SciPy教程之SciPy模块列表13:单位类型。常量模块包含多种单位,如公制、二进制(字节)、质量、角度、时间、长度、压强、体积、速度、温度、能量、功率和力学单位。示例代码展示了如何使用`constants`模块获取零摄氏度对应的开尔文值(273.15)和华氏度与摄氏度的转换系数(0.5556)。
18 1
|
1月前
|
弹性计算 安全 数据处理
Python高手秘籍:列表推导式与Lambda函数的高效应用
列表推导式和Lambda函数是Python中强大的工具。列表推导式允许在一行代码中生成新列表,而Lambda函数则是用于简单操作的匿名函数。通过示例展示了如何使用这些工具进行数据处理和功能实现,包括生成偶数平方、展平二维列表、按长度排序单词等。这些工具在Python编程中具有高度的灵活性和实用性。
34 2
|
2月前
|
Python
SciPy 教程 之 SciPy 模块列表 9
SciPy教程之常量模块介绍,涵盖多种单位类型,如公制、质量、角度、时间、长度、压强等。示例展示了如何使用`scipy.constants`模块查询不同压强单位对应的帕斯卡值,包括atm、bar、torr、mmHg和psi。
16 1