Python(二)列表简介

一、列表

列表(list)由一系列按特定顺序排列的元素组成。列表通常包含多个元素。在Python中,用方括号( )表示列表,用逗号分隔其中的元素。如果将列表打印出来,Python将打印列表的内部表示,包括方括号。

python 复制代码
languages=['python','java','c']
print(languages)    # ['python', 'java', 'c']

1、访问列表元素

列表是有序集合,要访问列表元素,可指出列表的名称,再指出元素的索引,并将后者放在方括号内。当请求获取列表元素时,Python只返回该元素,而不包括方括号。

python 复制代码
languages=['python','java','c']
print(languages[0])  # python

在Python中,第一个列表元素的索引为0,而不是1。Python为访问最后一个列表元素提供了一种特殊语法,通过将索引指定为-1,可让Python返回最后一个列表元素。

2、使用列表中的每个值

二、修改、添加和删除元素

1、修改列表元素

要修改列表元素,可指定列表名和要修改的元素的索引,再指定该索引位置上的新值。

python 复制代码
languages=['python','java','c']
print(languages)  # ['python', 'java', 'c']
languages[2]='javascript'
print(languages)  # ['python', 'java', 'javascript']

2、在列表中添加元素

(1)在列表末尾添加元素

在列表中添加新元素时,最简单的方式是将元素追加(append)到列表末尾。append()方法将元素添加到元素末尾,而不影响列表中的其他所有元素。

python 复制代码
animals=[]
animals.append('cat')
animals.append('dog')
print(animals) # ['cat', 'dog']

(2)在列表中插入元素

使用insert()方法可在列表的任意位置添加新元素。为此,需要指定新元素的索引和值。

python 复制代码
languages=['python','java','c']
languages.insert(0,'javascript')
print(languages)   # ['javascript', 'python', 'java', 'c']

3、从列表中删除元素

可以根据位置或值来删除列表中的元素。

(1)使用del语句删除元素

如果知道要删除的元素在列表中的位置,可使用del语句。使用del可以删除任意位置的列表元素,只需要知道其索引即可。

python 复制代码
languages=['python','java','c']
print(languages)  # ['python', 'java', 'c']
del languages[1]
print(languages)  # ['python', 'c']

(2)使用pop()方法删除元素

有时候,你要将元素从列表中删除,并接着使用它的值。pop()方法删除列表末尾的元素,并让你能够接着使用它。术语弹出(pop)源自这样的类比:列表就像一个栈,而删除列表末尾的元素相当于弹出栈顶元素。

python 复制代码
languages=['python','java','c']
print(languages)   # ['python', 'java', 'c']
popped_language=languages.pop()
print(languages)  # ['python', 'java']
print(popped_language)  # c

(3)删除列表中任意位置的元素

实际上,也可以使用pop()删除列表中任意位置的元素,只需要在括号中指定要删除的元素的索引即可。

python 复制代码
languages=['python','java','c']
first_language=languages.pop(0)
print(first_language)    # python

如果不确定该使用del语句还是pop()方法,下面是一个简单的判断标准:如果要从列表中删除一个元素,且不再以任何方式使用它,就使用del语句;如果要在删除元素后继续使用它,就使用pop()方法。

(4)根据值删除元素

如果只知道要删除的元素的值,可使用remove()方法。remove()方法让Python确定值出现在列表的什么地方,并将该元素删除。

python 复制代码
languages=['python','java','c']
languages.remove('java')
print(languages)   # ['python', 'c']

使用remove()从列表中删除元素后,也可继续使用它的值。remove()方法只删除第一个指定的值,如果要删除的值可能在列表中出现多次,就需要使用循环,确保每个值都删除。

三、管理列表

在你创建的列表中,元素的排列顺序常常是无法预测的,因为你并非总能控制用户提供数据的顺序。Python提供了很多管理列表的方式,可根据具体情况适用。

1、使用sort()方法对列表进行永久排序

Python方法sort()让你能够较为轻松地对列表进行排序。sort()方法能永久地修改列表元素的排列顺序。

python 复制代码
languages=['python','java','c','javascript']
languages.sort()
print(languages)  # ['c', 'java', 'javascript', 'python']

还可以按与字母顺序相反的顺序排列列表元素,只需向sort()方法传递参数reverse=True即可。

python 复制代码
languages=['python','java','c','javascript']
languages.sort(reverse=True)
print(languages)  # ['python', 'javascript', 'java', 'c']

2、使用sorted()函数对列表进行临时排序

要保留列表元素原来的排列顺序,并以特定的顺序呈现它们,可使用sorted()函数。

python 复制代码
languages=['python','java','c','javascript']
print("原始顺序:",languages)  # 原始顺序: ['python', 'java', 'c', 'javascript']
print("字母顺序:",sorted(languages))  # 字母顺序: ['c', 'java', 'javascript', 'python']

如果按与字母顺序相反的顺序排列列表元素,也可向sorted()方法传递参数reverse=True。

3、反向打印列表

要反转列表元素的排列顺序,可使用reverse()方法。

python 复制代码
languages=['python','java','c','javascript']
print(languages)  # ['python', 'java', 'c', 'javascript']
languages.reverse()
print(languages)  # ['javascript', 'c', 'java', 'python']

reverse()不是按与字母顺序相反的顺序排列列表元素,只是反转列表元素的排列顺序。

4、确定列表的长度

使用len()函数可快速获悉列表的长度。

python 复制代码
>>> languages=['python','java','c','javascript']
>>> len(languages)
4
相关推荐
不像程序员的程序媛9 分钟前
maven基础
python·pycharm·maven
xiaogai_gai1 小时前
仅查询策略实战:从金蝶云·星空旗舰版定时拉取收料通知单
大数据·数据库·python
benchmark_cc2 小时前
Python 量化系统如何设计统一的数据访问接口:从策略解耦到数据层架构
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
const_qiu2 小时前
第四章 00:开篇 —— 从「会聊天」到「记得住、会干活、能协作」
java·开发语言·人工智能·python
估值探索者3 小时前
【Python量化选股流水线 #04】选股器好不好用?「昨日候选→今日表现」回看验收
开发语言·python·股票数据·股票数据api接口
田里的水稻3 小时前
PyTorch_Dataloader\TensorBoard---数据加载与可视化
人工智能·pytorch·python·神经网络·机器学习
Dmz丶3 小时前
前端转 AI 100 天 Day 27:Docker 容器化——从“我电脑能跑“到“到处能跑“
python
卿卿的产品经理日记3 小时前
【AI产品经理实战】Day 38|try-except 踩坑实录:报错是数据
人工智能·笔记·python·学习·产品经理
全栈练习生3 小时前
文档智能与实践
python·ai
隐擎fox4 小时前
深入 Android 移动端风控与协议层对抗:内核级虚拟环境检测、网络堆栈特征伪装与住宅 IP 协同实战
android·网络·python·网络协议·tcp/ip