Python关于列表list

2023-10-31

Python的列表数据类型包含更多的方法。这里是所有的列表对象方法:

list.append(x):把一个元素添加到列表的结尾,相当于a[len(a):] = [x]

list.extend(L):将一个给定列表中的所有元素都添加到另一个列表中,相当于a[len(a):] = L 

list.insert(i,x) 在指定位置插入一个元素。参数 i 是插入到其前面的那个元素的索引,如:a.insert(0,x)会插入到整个列表之前,a.insert(len(a),x)相当于a.append(x)

list.remove(x):删除列表中值为x的第一个元素,如果没有这样的元素,返回一个错误 

list.pop([i]): 从列表的指定位置删除元素,并将其返回。如果没有指定索引,a.pop()返回最后一个元素,元素随即从列表中被删除([ i ]表示参数可选)

list.clear(): 从列表中删除所有元素。相当于del a[:]

list.index(x):返回列表中第一个值为x的元素的索引,如果没有匹配的元素返回一个错误 

list.count(x):返回x在列表中出现的次数 

list. sort():对列表中的元素进行排序

 list.reverse():对列中的的元素进行倒序排列

list.copy():返回列表的一个浅拷贝。相当于a[:] 

 1.把列表当做堆栈使用

        列表方法使得列表可以作为一个堆栈来使用,堆栈作为特定的数据结构,最先进入的元素最后一个被释放(后进先出),用append()方法可以把一个元素添加到堆栈顶,用不指定索引的pop()方法可以把一个元素从堆栈顶释放出来。例如:

#把列表当做堆栈
stack = [3,4,5]
stack.append(6)
stack.append(7)
print(stack)

print(stack.pop())
print(stack)

print(stack.pop())
print(stack)

结果:

[3, 4, 5, 6, 7]
7
[3, 4, 5, 6]
6
[3, 4, 5]

2.把列表当做队列使用

队列作为特定的数据结构,最先进入的元素最先释放(先进先出)。但是列表这样用效率不高,相对来说从列表末尾添加和弹出快,在头部插入和弹出慢(为了一个元素,移动整个列表中的所有元素)。

实现队列,要使用collections.deque,它为在首尾两端快速插入和删除而设计。例如:

#把列表当做队列
from collections import deque
queue = deque(["Eric","John","Michael"])
queue.append("Terry")
queue.append("James")
print(queue.popleft())

print(queue.popleft())

print(queue)

结果:

Eric
John
deque(['Michael', 'Terry', 'James'])

3.列表推导式

列表解析中的第一个表达式可以是任何表达式,包括列表解析

下面是三个长度为4的列表组成的3*4的矩阵:

matrix = [
    [1,2,3,4],
    [5,6,7,8],
    [9,10,11,12]
]

如果想交换行和列,可以用嵌套的列表推导式:

res = [[row[i] for row in matrix] for i in range(4)]
print(res)

结果:

[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]

相当于:

transposed = []
for i in range(4):
    transposed_row = []
    for row in matrix:
        transposed_row.append(row[i])
    transposed.append(transposed_row)
print(transposed)

结果:

[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]

使用内置函数zip()

print(list(zip(*matrix)))

结果:

[(1, 5, 9), (2, 6, 10), (3, 7, 11), (4, 8, 12)]

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python关于列表list 的相关文章

  • 下载 PyQt6 的 Qt Designer 并使用 pyuic6 将 .ui 文件转换为 .py 文件

    如何下载 PyQt6 的 QtDesigner 如果没有适用于 PyQt6 的 QtDesigner 我也可以使用 PyQt5 的 QtDesigner 但是如何将此 ui 文件转换为使用 PyQt6 库而不是 PyQt5 的 py 文件
  • Django REST序列化器:创建对象而不保存

    我已经开始使用 Django REST 框架 我想做的是使用一些 JSON 发布请求 从中创建一个 Django 模型对象 然后使用该对象而不保存它 我的 Django 模型称为 SearchRequest 我所拥有的是 api view
  • 如何在python中读取多个文件中的文本

    我的文件夹中有许多文本文件 大约有 3000 个文件 每个文件中第 193 行是唯一包含重要信息的行 我如何使用 python 将所有这些文件读入 1 个文本文件 os 模块中有一个名为 list dir 的函数 该函数返回给定目录中所有文
  • 如何使用固定的 pandas 数据框进行动态 matplotlib 绘图?

    我有一个名为的数据框benchmark returns and strategy returns 两者具有相同的时间跨度 我想找到一种方法以漂亮的动画风格绘制数据点 以便它显示逐渐加载的所有点 我知道有一个matplotlib animat
  • 如何生成给定范围内的回文数列表?

    假设范围是 1 X 120 这是我尝试过的 gt gt gt def isPalindrome s check if a number is a Palindrome s str s return s s 1 gt gt gt def ge
  • 导入错误:没有名为 _ssl 的模块

    带 Python 2 7 的 Ubuntu Maverick 我不知道如何解决以下导入错误 gt gt gt import ssl Traceback most recent call last File
  • Python 多处理示例不起作用

    我正在尝试学习如何使用multiprocessing但我无法让它发挥作用 这是代码文档 http docs python org 2 library multiprocessing html from multiprocessing imp
  • pandas 替换多个值

    以下是示例数据框 gt gt gt df pd DataFrame a 1 1 1 2 2 b 11 22 33 44 55 gt gt gt df a b 0 1 11 1 1 22 2 1 33 3 2 44 4 3 55 现在我想根据
  • 如何使用 Scrapy 从网站获取所有纯文本?

    我希望在 HTML 呈现后 可以从网站上看到所有文本 我正在使用 Scrapy 框架使用 Python 工作 和xpath body text 我能够获取它 但是带有 HTML 标签 而且我只想要文本 有什么解决办法吗 最简单的选择是ext
  • Python tcl 未正确安装

    我刚刚为 python 安装了graphics py 但是当我尝试运行以下代码时 from graphics import def main win GraphWin My Circle 100 100 c Circle Point 50
  • __del__ 真的是析构函数吗?

    我主要用 C 做事情 其中 析构函数方法实际上是为了销毁所获取的资源 最近我开始使用python 这真的很有趣而且很棒 我开始了解到它有像java一样的GC 因此 没有过分强调对象所有权 构造和销毁 据我所知 init 方法对我来说在 py
  • 从列表中的数据框列中搜索部分字符串匹配 - Pandas - Python

    我有一个清单 things A1 B2 C3 我有一个 pandas 数据框 其中有一列包含用分号分隔的值 某些行将包含与上面列表中的一项的匹配 它不会是完美的匹配 因为它在其中包含字符串的其他部分 该列 例如 该列中的一行可能有 哇 这里
  • 使用 OpenPyXL 迭代工作表和单元格,并使用包含的字符串更新单元格[重复]

    这个问题在这里已经有答案了 我想使用 OpenPyXL 来搜索工作簿 但我遇到了一些问题 希望有人可以帮助解决 以下是一些障碍 待办事项 我的工作表和单元格数量未知 我想搜索工作簿并将工作表名称放入数组中 我想循环遍历每个数组项并搜索包含特
  • Python - 在窗口最小化或隐藏时使用 pywinauto 控制窗口

    我正在尝试做的事情 我正在尝试使用 pywinauto 在 python 中创建一个脚本 以在后台自动安装 notepad 隐藏或最小化 notepad 只是一个示例 因为我将编辑它以与其他软件一起使用 Problem 问题是我想在安装程序
  • 通过数据框与函数进行交互

    如果我有这样的日期框架 氮 EG 00 04 NEG 04 08 NEG 08 12 NEG 12 16 NEG 16 20 NEG 20 24 datum von 2017 10 12 21 69 15 36 0 87 1 42 0 76
  • Python:计算字典的重复值

    我有一本字典如下 dictA unit1 test1 alpha unit1 test2 beta unit2 test1 alpha unit2 test2 gamma unit3 test1 delta unit3 test2 gamm
  • 在 Pandas DataFrame Python 中添加新列[重复]

    这个问题在这里已经有答案了 例如 我在 Pandas 中有数据框 Col1 Col2 A 1 B 2 C 3 现在 如果我想再添加一个名为 Col3 的列 并且该值基于 Col2 式中 如果Col2 gt 1 则Col3为0 否则为1 所以
  • glpk.LPX 向后兼容性?

    较新版本的glpk没有LPXapi 旧包需要它 我如何使用旧包 例如COBRA http opencobra sourceforge net openCOBRA Welcome html 与较新版本的glpk 注意COBRA适用于 MATL
  • 您可以在 Python 类型注释中指定方差吗?

    你能发现下面代码中的错误吗 米皮不能 from typing import Dict Any def add items d Dict str Any gt None d foo 5 d Dict str str add items d f
  • Pandas 与 Numpy 数据帧

    看这几行代码 df2 df copy df2 1 df 1 df 1 values 1 df2 ix 0 0 我们的教练说我们需要使用 values属性来访问底层的 numpy 数组 否则我们的代码将无法工作 我知道 pandas Data

随机推荐