列表是新手可直接使用的最强大的Python功能之一,它融合了众多重要的编程概念。
列表简介
列表是什么
列表由一系列按特定顺序排列的元素组成。鉴于列表通常包含多个元素,给列表制定一个标识符书的名称(如letters、digits或names)是个不错的主意。
在Python中,用方括号([])来表示列表,并用逗号来分隔其中的元素。下面是一个简单的列表示例:
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles)
访问列表元素
和js一样,使用索引来访问即可。
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles[0])
trek
索引从0开始而不是1开始
在Python中,第一个列表元素的索引为0,而不是1,在大多数变成语言中都是如此。如果使用的时候出现问题,请看看你是否犯了简单的差一错误。
Python为访问最后一个列表元素提供了一种特殊的语言。通过将索引指定为-1,可让Python返回最后一个列表元素:
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles[-1])
specialized
这种语言很有用,可以在你不知道列表长度的情况访问最后的元素。这种约定也使用其他负数索引,-2就是获取倒数第二个元素。
注意,在Python中使用不存在的索引来试图访问某个元素,会报 IndexError: list index out of range
越界错误,如:
bicycles = []
print(bicycles[-1])
修改、添加和删除元素
修改列表元素
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
motorcycles[0] = 'ducati'
print(motorcycles)
['honda', 'yamaha', 'suzuki']
['ducati', 'yamaha', 'suzuki']
在列表中添加元素
-
在列表末尾添加元素 —— append(element)
类似 js 中的 push
-
在列表中插入元素 —— insert(index, element)
类似 js 中 splice(index, 0, element) 的效果
motorcycles = ['honda', 'yamaha', 'suzuki'] motorcycles.insert(0, 'ducati') print(motorcycles)
['ducati', 'honda', 'yamaha', 'suzuki']
从列表中删除元素
-
使用 del 语句删除元素
motorcycles = ['honda', 'yamaha', 'suzuki'] del motorcycles[0]; print(motorcycles)
['yamaha', 'suzuki']
js 中没有这种用法
-
使用 pop([index]) 删除元素
注意,和 js 中的 pop 有所区别,js 中的 pop 只能删除数组的末尾元素, Python 中 pop 可以传入索引删除指定的元素。
motorcycles = ['honda', 'yamaha', 'suzuki'] motorcycles.pop(1) print(motorcycles)
['honda', 'suzuki']
-
根据值删除元素 —— remove
有时候,你不知道要从列表中删除的值所处的位置。如果你只知道要删除的元素的值,可使用方法 remove()。
motorcycles = ['honda', 'yamaha', 'suzuki'] motorcycles.remove('yamaha') print(motorcycles)
['honda', 'suzuki']
注意,remove 方法只会删除符合条件的第一个元素
操作列表
遍历整个列表
可以使用 for 循环来打印:
# 魔法师列表
magicians = ['alice', 'david', 'carolina']
for magician in magicians:
print(magician)
这里冒号,相当于js中花括号。
创建数值列表
使用函数range()
Python 函数range() 让你能够轻松地生成一系列的数字。例如,可以像下面这样使用 range() 来打印一系列的数字:
for value in range(1, 5):
print(value)
1
2
3
4
range 是 左闭右开。
对数字列表执行简单的统计计算
Python 有几个专门用于处理数字列表的函数,如min、max、sum等,这比 js 要方便的多。
digits = [1, 2, 3, 4]
min(digits)
max(digits)
sum(digits)
列表解析
列表解析可以将for循环和创建新元素的代码合并成一行,并自动附加新元素。
squares = [value**2 from value in range(1, 11)]
print(squares)
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
使用列表的一部分
切片
players = ['a', 'b', 'c', 'd']
print(players[0:3])
['a','b', 'c']
同样也是 左闭右开,冒号左边是开始索引,右边是终止索引。开始索引和终止索引都是可以省略的。
如果没有指定开始索引,则是从列表开头提取,
如果没有指定终止索引,则是提取到列表最后一个元素。
遍历切片
for n in players[0:3]:
print(n)
a
b
c
复制列表
直接使用 [:],就是复制整个列表,类似 js 的 slice() 的效果。
元组
不可修改的列表称之为 元组。这个和 Typescript 中的元组有所不同,需要注意下。
Python 中的元组使用()来表示,而 Typescript 中仍是[]。
遍历元组中的所有值
像列表一样,可以使用 for 循环来遍历元组中的所有值:
dimensions = (200, 50)
for dimension in dimensions:
print(dimension)
200
50
总结
今天学习了 Python中的列表,包括列表中特殊类型——元组,也简单使用了 Python中的for循环语句。今天就到这里,明天学习 Python中 if 语句。