ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

【Python从零到壹】Python列表详解

2021-04-07 14:51:25  阅读:182  来源: 互联网

标签:0003 Python 元素 列表 零到 lst 详解 2021 print


文章目录

    • 1. 获取指定的元素
    • a) 切片操作
    • b)查询操作
    • c) 列表元素遍历
    • a) 获取类表中的指定元素的索引
    • b) 获取列表中的单个元素
    • 2. 列表查询操作
    • 3. 列表元素的增加操作
    • 4. 列表元素的删除
    • 5. 列表元素的修改
    • 6. 列表的排序操作
    • 7. 列表生成式
    • 1.为什么要使用列表?
    • 2. 列表的内存示意图讲解
    • 3. 列表对象的创建
    • 一. 列表的概念
    • 二.列表的使用
    • 总结


一. 列表的概念

1.为什么要使用列表?

我们都知道变量可以存储一个元素,而列表是一个大容器,可以存储N个元素,程序可以方便的对这些元素进行操作。

列表相当于其他语言中的数组,如果你没有了解过其他语言,这句话可以略过。

在Python中一切皆为对象,所以变量存储的就是一个对象的引用。

2. 列表的内存示意图讲解

列表示意图:
在这里插入图片描述

# 作者:互联网老辛# 开发时间:2021/4/3/0003 18:38a=20
lst=['hello','world',2021]print(id(lst))print(type(lst))print(lst)

在这里插入图片描述

示意图:
假如一个列表是lst=[hello,world,100,20] 4个元素
在这里插入图片描述

3. 列表对象的创建

# 作者:互联网老辛# 开发时间:2021/4/3/0003 18:38#c创建列表的第一种方式lst=['hello','world']#创建列表的第二种方式,使用内置函数list()lis2=list(['hello','world'])

列表的特点:

  • 列表元素按照有序排序
  • 索引映射唯一一个数据
  • 列表可以重复存储数据
  • 任意数据类型混存
  • 根据需要动态分配和回收内存

二.列表的使用

1. 获取指定的元素

a) 获取类表中的指定元素的索引

根据索引获取指定的元素

# 作者:互联网老辛# 开发时间:2021/4/3/0003 18:38lst=['hello','world',38,'itlaoxin']print(lst.index('hello'))print(lst.index(38,1,4))

在索引为1-4里查找元素38,结果为2

b) 获取列表中的单个元素

# 作者:互联网老辛# 开发时间:2021/4/3/0003 18:38lst=['hello','world',38,'itlaoxin','hello','world',234]print(lst[2]) #38print(lst[-3])#helloprint(lst[0]) #hello#print(lst[10]) #超出范围报错print(lst[-1]) #234

2. 列表查询操作

a) 切片操作

步长为正数的时候:

# 作者:互联网老辛# 开发时间:2021/4/3/0003 18:38lst=[1,2,3,4,5,6,7,8,9,]print(lst[1:6:1]) #[2, 3, 4, 5, 6]

lst[1:6:1] 表示: 从索引1开始到索引6结束,步长为1,一般默认步长为1

其他写法:

# 作者:互联网老辛# 开发时间:2021/4/3/0003 18:38lst=[1,2,3,4,5,6,7,8,9,]print(lst[1:6:1]) #[2, 3, 4, 5, 6]print(lst[1:6])print(lst[1:6:])print(lst[1:6:2])print(lst[:6:2])

结果:
在这里插入图片描述
步长为负数的情况

# 作者:互联网老辛# 开发时间:2021/4/3/0003 18:38lst=[1,2,3,4,5,6,7,8,9,]print(lst[::-1])

这种情况相当于取反

这种写法也可以:

# 作者:互联网老辛# 开发时间:2021/4/3/0003 18:38lst=[1,2,3,4,5,6,7,8,9,]print(lst[8::-1]) #[9, 8, 7, 6, 5, 4, 3, 2, 1]

b)查询操作

判断指定元素是否在列表中存在

  • 元素in 列表名
  • 元素 not in 列表名
c) 列表元素遍历

for 可迭代变量 in 列表

# 作者:互联网老辛# 开发时间:2021/4/3/0003 18:38lst=[1,2,3,4,5,6,7,8,9,]for item in lst:
    print(item)

3. 列表元素的增加操作

列表元素的增加操作:
append() 在列表末尾加一个元素
extend() 在列表末尾添加一个元素
insert() 在列表的任意位置添加一个元素
切片: 在列表的任意位置添加一个元素

append()

# 作者:互联网老辛# 开发时间:2021/4/3/0003 18:38lst=[1,2,3]print("添加元素之前",lst,id(lst))lst.append(100)print('添加元素之后',lst,id(lst))

在这里插入图片描述
可以看到,ID是相同的,也就是没有生成新的列表

# 作者:互联网老辛# 开发时间:2021/4/3/0003 18:38lst=[1,2,3]print("添加元素之前",lst,id(lst))lst.append(100)print('添加元素之后',lst,id(lst))lst2=['hello','world']lst.append(lst2)print(lst)

输出:
在这里插入图片描述
可以看到这里,将lst2作为一个元素添加到末尾
extend()
这个是扩展

# 作者:互联网老辛# 开发时间:2021/4/3/0003 18:38lst=[1,2,3]lst2=['hello','world']print(lst)lst.extend(lst2)print(lst)

在这里插入图片描述
insert() 是在任意位置上添加

# 作者:互联网老辛# 开发时间:2021/4/3/0003 18:38lst=[1,2,3]lst.insert(2,90)print(lst)

在这里插入图片描述

切片也可以在任意位置添加元素

# 作者:互联网老辛# 开发时间:2021/4/3/0003 18:38lst=[1,2,3,4]lst3=['hello','world','itlaoxin']lst[1:]=lst3
print(lst)

在这里插入图片描述
可以看到,它把索引1后面的都切掉了,然后把lst3添加到lst里了

切片实际上就是切掉一部分,用新的替换。

4. 列表元素的删除

  • remove()
    一次删除一个元素,重复元素只删除第一个,元素不存在抛出valueerror

  • pop()
    删除一个指定索引位置上的元素
    指定锁定不抛出indexError
    不指定索引,删除列表中的最后一个元素

  • 切片: 一次至少删除一个元素(切片会产生一个新的列表对象)

  • clear() 清空列表

  • del() 删除列表

# 作者:互联网老辛# 开发时间:2021/4/3/0003 18:38lst=[1,2,3,4]lst.pop(2)print(lst) #[1, 2, 4]

# 作者:互联网老辛# 开发时间:2021/4/3/0003 18:38lst=[1,2,3,4]#pop() 不指定索引删除最后一个lst.pop()print(lst)#[1, 2, 3]

清空列表

# 作者:互联网老辛# 开发时间:2021/4/3/0003 18:38lst=[1,2,3,4]#clear() 清空列表lst.clear()print(lst)

删除列表

# 作者:互联网老辛# 开发时间:2021/4/3/0003 18:38lst=[1,2,3,4]del lst

print(lst)

删除后就没有了,打印会提示没有定义

在这里插入图片描述

5. 列表元素的修改

列表元素的修改:

  • 为指定索引元素赋新值
  • 为指定的切片赋予一个新值
# 作者:互联网老辛# 开发时间:2021/4/3/0003 18:38lst=[1,2,3,4]#一次修改一个值lst[2]=100
print(lst)#[1, 2, 100, 4]

使用切片来替换

# 作者:互联网老辛# 开发时间:2021/4/3/0003 18:38lst=[1,2,3,4]lst[1:3]=[30,40,50,60]print(lst)

在这里插入图片描述
这个就是把2和3去掉,然后用30,40,50,60 代替

6. 列表的排序操作

两种方法:

  1. 调用sort()方法,列表中所有的元素默认按照从小到大的顺序来排序,可以指定reverse=True 进行降序排序
  2. 调用内置函数 sorted() ,可以指定reverse=True进行降序排序,原列表不发生改变。此方法会产生一个新的列表对象
# 作者:互联网老辛# 开发时间:2021/4/3/0003 18:38lst=[1,2,3,4,88,77,5,46]print('排序前的列表',lst)lst.sort()print('排序后的列表',lst)lst.sort(reverse=True)print('降序排序',lst)

在这里插入图片描述
使用sorted() 会产生一个新列表

# 作者:互联网老辛# 开发时间:2021/4/3/0003 18:38lst=[1,2,3,4,88,77,5,46]print('排序前的列表',lst)newlst=sorted(lst)print(lst)print(newlst)

两个区别就是: sort()是对原列表进行操作,sorted()是生成新列表

7. 列表生成式

列表生成式,就是列表生成的公式

语法: ii for i in range(1,10)
在这里插入图片描述
ii 表示列表元素的表达式

# 作者:互联网老辛# 开发时间:2021/4/3/0003 18:38lst=[ i for i in range(1,10)]print(lst)

在这里插入图片描述

注意: 要想使用列表生成式,需要你生成的列表有一定的规则

比如列表中的元素的值为2,4,6,8,10

# 作者:互联网老辛# 开发时间:2021/4/3/0003 18:38lst=[ i*2 for i in range(1,6)]print(lst)

这种方式了解下就可以了。

总结

列表还是很重要的,在Python以后的学习中经常会用到。

标签:0003,Python,元素,列表,零到,lst,详解,2021,print
来源: https://blog.51cto.com/xinsz08/2690265

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有