首页 后端开发 Python教程 Python操作列表的常用方法总结

Python操作列表的常用方法总结

Oct 19, 2016 am 11:48 AM
python

下面列出列表常用的方法操作列表以及小例子:

1.  Append

在列表末尾添加元素,需在列表末尾添加元素,需要注意几个点:

 A. append中添加的参数是作为一个整体

  

>>> name = list("scott")

>>> name

['s', 'c', 'o', 't', 't']

>>> name.append(list(" tiger"))

>>> name

['s', 'c', 'o', 't', 't', [' ', 't', 'i', 'g', 'e', 'r']]

得到的值不是:['s', 'c', 'o', 't', 't', ' ', 't', 'i', 'g', 'e', 'r']

如果想要这种的追加方式,可以试试分片赋值(或者下面说到的extend方法):

>>> name = list("scott")

>>> name

['s', 'c', 'o', 't', 't']

>>> name[len(name):] = list(" tiger")      #从末尾追加

>>> name

['s', 'c', 'o', 't', 't', ' ', 't', 'i', 'g', 'e', 'r']

B.append一次性只能添加一个元素

>>> name = list("scott")

>>> name

['s', 'c', 'o', 't', 't']

>>> name.append("A","B")        #添加多个元素即将报错

Traceback (most recent call last):

  File "", line 1, in ?

TypeError: append() takes exactly one argument (2 given)

>>> name.append("A")

>>> name

['s', 'c', 'o', 't', 't', 'A']

 

2. Count

     统计某个元素在列表中出现的次数

>>> name = list("scott")

>>> name

['s', 'c', 'o', 't', 't']

>>> name.count('s')

>>> name.count("t")

>>> name.count("A")

>>> name.append(list("Python"))

>>> name

['s', 'c', 'o', 't', 't', ['P', 'y', 't', 'h', 'o', 'n']]

>>> name.count(['P', 'y', 't', 'h', 'o', 'n'])

 

3. Extend

   在原列表追加另一个序列的中的多个值

>>> name = list("scott")

>>> name

['s', 'c', 'o', 't', 't']

>>> name.extend(list(" tiger"))

>>> name

['s', 'c', 'o', 't', 't', ' ', 't', 'i', 'g', 'e', 'r']

当然,我们可以用分片赋值来实现:

>>> name = list("scott")

>>> name

['s', 'c', 'o', 't', 't']

>>> name[len(name):] = list(" tiger")

>>> name

['s', 'c', 'o', 't', 't', ' ', 't', 'i', 'g', 'e', 'r']

这时小伙伴们会想到,我们可以直接用操作符"+"嘛,还方便些:

>>> name = list("scott")

>>> pwd  = list(" tiger")

>>> name + pwd

['s', 'c', 'o', 't', 't', ' ', 't', 'i', 'g', 'e', 'r']

>>> name

['s', 'c', 'o', 't', 't']

从这三种方式操作的输出,可以看出:

extend和分片赋值都是修改原列表,相对而言,extend可读性强些,而操作符"+"是生成一个新的列表,不影响原列表,如果

我们需要生成新列表而不影响原列表,就可以用操作符"+"。

 

4.Index

从列表中找出某个值第一个(注意是第一个)匹配项的索引位置

>>> name = list("scott")

>>> name

['s', 'c', 'o', 't', 't']

>>> name.index('t')    ##第一个字母t的索引位置是3

  

>>> name.index('a')

Traceback (most recent call last):

  File "", line 1, in ?

ValueError: list.index(x): x not in list

>>> 'a' in name

False

>>> 'a' not in name

True

从输出可以看出,index找的是第一个匹配项的索引位置,而如果查找的元素不在列表中,会报错(返回-1会不会好一点呢?),当然如果想避免报

错,我们可以先用in操作,判断某个元素是否在某个列表中,如果在的话,然后进行index操作。

 

5. Insert

    用于将对象插入到列表中,俩个参数,第一个是索引位置,第二个插入的元素对象。

>>> name = list("scott")

>>> name

['s', 'c', 'o', 't', 't']

>>> name.insert(2,'tiger')     ##在索引为2的地方插入字符串tiger  

>>> name

['s', 'c', 'tiger', 'o', 't', 't']

我们也可以用分片赋值:

>>> name = list("scott")

>>> name

['s', 'c', 'o', 't', 't']

>>> name[2:2] = ['tiger']

>>> name

['s', 'c', 'tiger', 'o', 't', 't']

>>> name[2:2] = 'tiger'

>>> name

['s', 'c', 't', 'i', 'g', 'e', 'r', 'tiger', 'o', 't', 't']

这里需要注意的是,如果是插入一个元素,需要用[]括起来,不然,直接用字符串的话,是插入字符串的列表,在索引位置之后添加。

当然,用insert的可读性比分片赋值强。

 

6. Pop

    移除列表中的一个元素(最后一个元素),并返回该元素的值

>>> name = list("scott")

>>> name

['s', 'c', 'o', 't', 't']

>>> name.pop()

't'

>>> name

['s', 'c', 'o', 't']

>>> name.append("t")

>>> name

['s', 'c', 'o', 't', 't']

分片赋值模拟pop:

>>> name = list("scott")

>>> name

['s', 'c', 'o', 't', 't']

>>> name[len(name)-1:] = []

>>> name

['s', 'c', 'o', 't']

这上面用pop和append模拟了栈的先进先出LIFO。

 

7. Remove

   移除列表中某个值的第一匹配项: 如果有俩个相等的元素,就只是移除匹配的一个元素,如果某元素不存在某列表中,便会报错,而且一次性只能

   移除一个元素。

>>> name = list("scott")

>>> name

['s', 'c', 'o', 't', 't']

>>> name.remove("t")    #去掉第一个t

>>> name

['s', 'c', 'o', 't']

>>> name.remove("A")    #不存在会报错

Traceback (most recent call last):

  File "", line 1, in ?

ValueError: list.remove(x): x not in list

>>> "A" not in name

True

>>> name.remove("s","c")  #一次只能移除一个元素

Traceback (most recent call last):

  File "", line 1, in ?

TypeError: remove() takes exactly one argument (2 given)

 

8.Revense

   将列表中的元素反向

>>> name = list("scott")

>>> name

['s', 'c', 'o', 't', 't']

>>> name.reverse()

>>> name

['t', 't', 'o', 'c', 's']

 

9. Sort & Sorted

    sort方法用于对列表进行排序,修改原列表,不会返回一个已排序的列表副本

>>> result = [8,5,5,3,9]

>>> result.sort()

>>> result

[3, 5, 5, 8, 9]

如果我们想要返回一个已排序的列表副本,而不影响原来的列表呢,一种方法,我们可以先赋值原来列表(可以用分片赋值复制),然后

在复制的列表上做sort操作,另一种方法,就是使用sorted函数,它会返回已排序的列表副本:

>>> result = [8,5,5,3,9]

>>> result2 = sorted(result)

>>> result

[8, 5, 5, 3, 9]

>>> result2

[3, 5, 5, 8, 9]


本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

怎么下载deepseek 小米 怎么下载deepseek 小米 Feb 19, 2025 pm 05:27 PM

如何下载 DeepSeek 小米?在小米应用商店搜索“DeepSeek”,如未找到,则继续步骤 2。确定您的需求(搜索文件、数据分析),并找到包含 DeepSeek 功能的相应工具(如文件管理器、数据分析软件)。

deepseek怎么问他 deepseek怎么问他 Feb 19, 2025 pm 04:42 PM

有效使用DeepSeek的关键在于清晰提问:直接、具体地表达问题。提供具体细节和背景信息。对于复杂的询问,包含多个角度和反驳观点。关注特定方面,例如代码的性能瓶颈。对得到的答案保持批判性思维,结合专业知识进行判断。

deepseek该怎么搜索 deepseek该怎么搜索 Feb 19, 2025 pm 05:18 PM

直接使用DeepSeek自带的搜索功能即可,它强大的语义分析算法能准确理解搜索意图,提供相关信息。但对于冷门领域、最新信息或需要思考问题的搜索,需要调整关键词或使用更具体的描述、结合其他实时信息来源,并明白DeepSeek只是一个工具,需要主动、清晰、精细的搜索策略。

deepseek怎么编程 deepseek怎么编程 Feb 19, 2025 pm 05:36 PM

DeepSeek并非编程语言,而是深度搜索概念。实现DeepSeek需基于现有语言选择。针对不同应用场景,需要选择合适的语言和算法,并结合机器学习技术。代码质量、可维护性、测试至关重要。根据需求选择合适的编程语言、算法和工具,并编写高质量代码,才能成功实现DeepSeek。

deepseek怎么用来算账 deepseek怎么用来算账 Feb 19, 2025 pm 04:36 PM

问题:DeepSeek是否可用于会计?回答:不是,它是一个数据挖掘和分析工具,可用于分析财务数据,但本身不具备会计软件的账目记录和报表生成功能。使用DeepSeek分析财务数据需要:编写代码来处理数据具备对数据结构、算法和DeepSeek API的了解考虑潜在的问题(例如,编程知识、学习曲线、数据质量)

DeepSeekapi怎么接入-DeepSeekapi接入调用教程 DeepSeekapi怎么接入-DeepSeekapi接入调用教程 Mar 12, 2025 pm 12:24 PM

DeepSeekAPI接入与调用详解:快速上手指南本文将详细指导您如何接入和调用DeepSeekAPI,助您轻松使用强大的AI模型。第一步:获取API密钥访问DeepSeek官方网站,点击右上角的“开放平台”。您将获得一定数量的免费Tokens(用于计量API使用量)。在左侧菜单中,点击“APIKeys”,然后点击“创建APIkey”。为您的APIkey命名(例如,“test”),并立即复制生成的密钥。请务必妥善保存此密钥,因为它只会显示一次

Pi币重大更新:Pi Bank要来了! Pi币重大更新:Pi Bank要来了! Mar 03, 2025 pm 06:18 PM

PiNetwork即将推出革命性移动银行平台PiBank!PiNetwork今日发布重大更新Elmahrosa(Face)PIMISRBank,简称PiBank,它将传统银行服务与PiNetwork加密货币功能完美融合,实现法币与加密货币的原子交换(支持美元、欧元、印尼盾等法币与PiCoin、USDT、USDC等加密货币的互换)。究竟PiBank有何魅力?让我们一探究竟!PiBank主要功能:一站式管理银行账户和加密货币资产。支持实时交易,并采用生物特

当下ai切片工具有哪些 当下ai切片工具有哪些 Nov 29, 2024 am 10:40 AM

以下是一些流行的 AI 切片工具:TensorFlow DataSetPyTorch DataLoaderDaskCuPyscikit-imageOpenCVKeras ImageDataGenerator

See all articles