前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python学习笔记03-基础篇—列表List

Python学习笔记03-基础篇—列表List

作者头像
可以叫我才哥
发布2021-08-05 11:16:08
2410
发布2021-08-05 11:16:08
举报
文章被收录于专栏:可以叫我才哥

列表是由一系列按照特定顺序排列的元素组成,可以通过方括号([])来表示列表,并用逗号分隔里面的元素。

代码语言:javascript
复制
>>> alist = [1,2,3,4,5,6]
>>> alist
[1, 2, 3, 4, 5, 6]

1、列表的基础操作

列表元素的访问(索引和切片)

代码语言:javascript
复制
>>> alist[0]
1
>>> alist[-1]
6
>>> alist[-2:]
[5, 6]
>>> alist[1:3]
[2, 3]

列表元素的修改

代码语言:javascript
复制
>>> alist[0] = 22
>>> alist
[22, 2, 3, 4, 5, 6]

列表的拷贝 浅拷贝

代码语言:javascript
复制
#浅拷贝,blist修改元素不影响alist
>>> blist = alist[:]
>>> blist
[22, 2, 3, 4, 5, 6]
>>> blist[0] = 0
>>> alist
[22, 2, 3, 4, 5, 6]

深拷贝

代码语言:javascript
复制
#深拷贝,clist修改元素影响blist
>>> clist = blist
>>> clist[0] = 12
>>> blist
[12, 2, 3, 4, 5, 6]

计算列表长度

代码语言:javascript
复制
>>> blist
[12, 2, 3, 4, 5, 6]
>>> len(blist)
6

列表重复

代码语言:javascript
复制
>>> blist = ['a','b']
>>> blist * 3
['a', 'b', 'a', 'b', 'a', 'b']

列表组合

代码语言:javascript
复制
>>> blist
['a', 'b']
>>> alist = [1,2]
>>> alist + blist
[1, 2, 'a', 'b']

判断元素是否在列表中

代码语言:javascript
复制
>>> alist = [1,2]
>>> blist
['a', 'b']
>>> 'a' in blist
True
>>> 'a' in alist
False

2、列表的常见方法

a、列表元素的增加

list.append() 在列表末尾添加一个元素,append()

代码语言:javascript
复制
>>> alist = []
>>> alist.append(1)
>>> alist
[1]
>>> alist.append(2)
>>> alist
[1, 2]

list.insert() 在列表中插入一个元素,insert()

代码语言:javascript
复制
>>> blist = [1,2,3,4]
>>> blist.insert(1,5)
>>> blist
[1, 5, 2, 3, 4]

list.extend() 使用可迭代对象中的所有元素来扩展列表,extend() 近似 相当于 += 或 a[len(a)]=b

代码语言:javascript
复制
>>> blist
[1, 5, 2, 3, 4]
>>> alist
[1, 2]
>>> alist.extend(blist)
>>> alist
[1, 2, 1, 5, 2, 3, 4]
>>> alist =[1,2]
>>> alist[len(alist):] = blist
>>> alist
[1, 2, 1, 5, 2, 3, 4]
b、列表元素的删除

list.pop() 删除指定位置的元素并返回它,pop() 如果pop()没有给定参数,则删除并返回最后一个元素

代码语言:javascript
复制
>>> alist
[1, 2, 1, 5, 2, 3, 4]
>>> alist.pop()
4
>>> alist
[1, 2, 1, 5, 2, 3]

如果给定参数,则删除指定参数位置的元素并返回之

代码语言:javascript
复制
>>> alist
[1, 2, 1, 5, 2, 3]
>>> alist.pop(1)
2
>>> alist
[1, 1, 5, 2, 3]

list.remove() 移除第一个值为指定值的元素,如果没有则会报错,remove()

代码语言:javascript
复制
>>> alist
[1, 1, 5, 2, 3]
>>> alist.remove(1)
>>> alist
[1, 5, 2, 3]
>>> alist.remove(4)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: list.remove(x): x not in list

list.clear() 删除所有元素,clear()

代码语言:javascript
复制
>>> alist
[1, 5, 2, 3]
>>> alist.clear()
>>> alist
[]
c、列表永久性排序

list.sort()

代码语言:javascript
复制
>>> alist = [1,2,4,3,8,6]
>>> alist.sort()
>>> alist
[1, 2, 3, 4, 6, 8]
>>> alist.sort(reverse = True)
>>> alist
[8, 6, 4, 3, 2, 1]
d、元素反转排列顺序

list.reverse()

代码语言:javascript
复制
>>> alist = [2,3,4,9,8,7]
>>> alist.reverse()
>>> alist
[7, 8, 9, 4, 3, 2]

我们也可以采用切片的形式进行反转

代码语言:javascript
复制
>>> alist
[7, 8, 9, 4, 3, 2]
>>> alist[::-1]
[2, 3, 4, 9, 8, 7]
e、列表的浅拷贝

上面我们提到过 b = a[:]相当于浅拷贝,修改b的时候不影响a。 我们也可以通过copy()进行浅拷贝

代码语言:javascript
复制
>>> alist
[7, 8, 9, 4, 3, 2]
>>> blist = alist.copy()
>>> blist[1] = 10
>>> alist
[7, 8, 9, 4, 3, 2]

3、一些常用语句

a、del语句

有一种方式可以从列表按照给定的索引而不是值来移除一个元素: 那就是 del 语句。它不同于会返回一个值的 pop() 方法。del 语句也可以用来从列表中移除切片或者清空整个列表(我们之前用过的方式是将一个空列表赋值给指定的切片)。

代码语言:javascript
复制
>>> alist
[7, 8, 9, 4, 3, 2]
>>> del alist[0]
>>> alist
[8, 9, 4, 3, 2]
>>> del alist[0:2]
>>> alist
[4, 3, 2]
>>> del alist[:]
>>> alist
[]
>>> del alist #删除了alist变量
>>> alist
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'alist' is not defined
b、sorted语句

sorted()返回一个新的已排序列表,不会影响原有列表的排序

代码语言:javascript
复制
>>> alist = [2,3,4,9,8,7]
>>> sorted(alist)
[2, 3, 4, 7, 8, 9]
>>> alist
[2, 3, 4, 9, 8, 7]
>>> sorted(alist,reverse = True)
[9, 8, 7, 4, 3, 2]

4、列表推导式

列表推导式提供了一个更简单的创建列表的方法。常见的用法是把某种操作应用于序列或可迭代对象的每个元素上,然后使用其结果来创建列表,或者通过满足某些特定条件元素来创建子序列。

比如 常规的我们使用 for循环创建一个列表

代码语言:javascript
复制
>>> alist = []
>>> for i in range(1,10):
...     alist.append(i)
>>> alist
>>> [1, 2, 3, 4, 5, 6, 7, 8, 9]

以上相当于

代码语言:javascript
复制
>>> alist = list(i for i in range(1,10))
>>> alist = [i for i in range(1,10)]

列表推导式的结构是由一对方括号所包含的以下内容:一个表达式,后面跟一个 for 子句,然后是0个或多个 for 或 if 子句。其结果将是一个新列表,由对表达式依据后面的 for 和 if 子句的内容进行求值计算而得出。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-05-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 可以叫我才哥 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、列表的基础操作
  • 2、列表的常见方法
    • a、列表元素的增加
      • b、列表元素的删除
        • c、列表永久性排序
          • d、元素反转排列顺序
            • e、列表的浅拷贝
            • 3、一些常用语句
              • a、del语句
                • b、sorted语句
                • 4、列表推导式
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档