前端如何学习Python——列表篇|七日打卡

512 阅读4分钟

列表是新手可直接使用的最强大的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']

在列表中添加元素

  1. 在列表末尾添加元素 —— append(element)

    类似 js 中的 push

  2. 在列表中插入元素 —— insert(index, element)

    类似 js 中 splice(index, 0, element) 的效果

    motorcycles = ['honda', 'yamaha', 'suzuki']
    motorcycles.insert(0, 'ducati')
    print(motorcycles)
    
    ['ducati', 'honda', 'yamaha', 'suzuki']
    

从列表中删除元素

  1. 使用 del 语句删除元素

    motorcycles = ['honda', 'yamaha', 'suzuki']
    del motorcycles[0];
    print(motorcycles)
    
    ['yamaha', 'suzuki']
    

    js 中没有这种用法

  2. 使用 pop([index]) 删除元素

    注意,和 js 中的 pop 有所区别,js 中的 pop 只能删除数组的末尾元素, Python 中 pop 可以传入索引删除指定的元素。

    motorcycles = ['honda', 'yamaha', 'suzuki']
    motorcycles.pop(1)
    print(motorcycles)
    
    ['honda', 'suzuki']
    
  3. 根据值删除元素 —— 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 语句。