变量

列表

1. 列表是什么

列表(list)由⼀系列按特定顺序排列的元素组成。在 Python 中,⽤⽅括号[]表⽰列表,⽤逗号分隔其中的元素。

  • 示例
names = ['李白', '杜甫', '王维']
print(names)  # 输出:['李白', '杜甫', '王维']

2. 访问列表元素

列表是有序集合,因此要访问列表的任何元素,只需将该元素的位置索引告诉 Python 即可。要访问列表元素,可指出列表的名称,再指出元素的索引,并将后者放在⽅括号内。

在 Python 中,第⼀个列表元素的索引为0,⽽不是1

  • 示例
names = ['李白', '杜甫', '王维']
print(names[0])  # 输出:李白

3. 使用列表中的各个值

  • 示例
names = ['李白', '杜甫', '王维']
message = f"{names[0].title()}是诗仙"
print(message)  # 输出:李白是诗仙

4. 修改元素

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

  • 示例
names = ['李白', '杜甫', '王维']
print(names)  # 输出:['李白', '杜甫', '王维']
names[0] = '苏轼'
print(names)  # 输出:['苏轼', '杜甫', '王维']

5. 添加元素

1. 在列表末尾添加元素

在列表中添加新元素时,最简单的⽅式是将元素追加append到列表末尾。

names = ['李白', '杜甫', '王维']
print(names)  # 输出:['李白', '杜甫', '王维']
name.append = '苏轼'
print(names)  # 输出:['李白', '杜甫', '王维', '苏轼']

2. 在列表中插入元素

使⽤insert()⽅法可在列表的任意位置添加新元素。

  • 示例
names = ['李白', '杜甫', '王维', '白居易']
print(names)  # 输出:['李白', '杜甫', '王维', '白居易']
names.insert(2, '辛弃疾')
print(names)  # 输出:['李白', '杜甫', '王维', '辛弃疾', '白居易']

在这个⽰例中,insert()⽅法在索引2处添加空间,并将值'辛弃疾'存储到这个地⽅。

6. 删除元素

1. 使用 del 语句删除元素

使⽤del可删除任意位置的列表元素,只需要知道其索引即可。

  • 示例
names = ['李白', '杜甫', '王维', '白居易']
print(names)  # 输出:['李白', '杜甫', '王维', '白居易']
del names[3]
print(names)  # 输出:['杜甫', '王维', '白居易']

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

pop()⽅法删除列表末尾的元素,并让你能够接着使⽤它。列表就像⼀个栈,⽽删除列表末尾的元素相当于弹出栈顶元素。

  • 示例
names = ['李白', '杜甫', '王维', '白居易']
print(names)  # 输出:['李白', '杜甫', '王维', '白居易']
names.pop()
print(names)  # 输出:['李白', '杜甫', '王维']

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

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

  • 示例
names = ['李白', '杜甫', '王维', '白居易']
print(names)  # 输出:['李白', '杜甫', '王维', '白居易']
names.pop(2)
print(names)  # 输出:['李白', '杜甫', '白居易']

如果要从列表中删除⼀个元素,且不再以任何⽅式使⽤它,就使⽤del语句;如果要在删除元素后继续使⽤它,就使⽤pop()⽅法。

4. 根据值删除元素

  1. 有时候,你不知道要从列表中删除的值在哪个位置。如果只知道要删除的元素的值,可使⽤remove()⽅法。
  2. remove()⽅法让 Python 确定'王维'出现在列表的什么地⽅,并将该元素删除。
  3. 使⽤remove()从列表中删除元素后,也可继续使⽤它的值。
  • 示例
names = ['李白', '杜甫', '王维', '白居易']
print(names)  # 输出:['李白', '杜甫', '王维', '白居易']
names.remove('王维')
print(names)  # 输出:['李白', '杜甫', '白居易']

7. 管理列表

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

sort()⽅法能永久地修改列表元素的排列顺序。

  • 示例
# 定义列表
names = ['Bob', 'Jack', 'Alex', 'Tom']
# 按照字母顺序排序
names.sort()
# 打印排序后的名单
print(names)  # 输出: ['Alex', 'Bob', 'Jack', 'Tom']
# 按照逆字母顺序排序
names.sort(reverse=True)
# 打印逆字母顺序排序后的名单
print(names)  # 输出: ['Tom', 'Jack', 'Bob', 'Alex']

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

要保留列表元素原来的排列顺序,并以特定的顺序呈现它们,可使⽤
sorted()函数。sorted()函数让你能够按特定顺序显⽰列表元素,同时不影响它们在列表中的排列顺序。

  • 示例
# 定义列表
names = ['Bob', 'Jack', 'Alex', 'Tom']
print(names)  # 输出: ['Bob', 'Jack', 'Alex', 'Tom']
# 按字母顺序临时排序
print(sorted(names))  # 输出: ['Alex', 'Bob', 'Jack', 'Tom']
# 输出原来字母顺序
print(names)  # 输出: ['Bob', 'Jack', 'Alex', 'Tom']

3. 反向打印列表

反转列表元素的排列顺序,可使⽤reverse()⽅法,reverse()不是按与字⺟顺序相反的顺序排列列表元素,只是反转列表元素的排列顺序。reverse()⽅法会永久修改列表元素的排列顺序,但可随时恢复到原来的排列顺序,只需对列表再次调⽤reverse()即可。

  • 示例
# 定义列表
names = ['Bob', 'Jack', 'Alex', 'Tom']
print(names)  # 输出: ['Bob', 'Jack', 'Alex', 'Tom']
# 反向排序
names.reverse()
print(names)  # 输出: ['Tom', 'Alex', 'Jack', 'Bob']

4. 确定列表的长度

使⽤len()函数可快速获悉列表的⻓度。Python 在计算列表元素数时从1开始。

  • 示例
# 定义列表
names = ['Bob', 'Jack', 'Alex', 'Tom']
print(names)  # 输出: ['Bob', 'Jack', 'Alex', 'Tom']
# 列表长度
len(names)
print(f"这个列表的长度为:{len(names)}")  # 输出: 这个列表的长度为:4

8. 操作列表

1. 遍历列表

  • 示例
names = ['Bob', 'Jack', 'Alex', 'Tom']
# 使用 for 循环遍历列表
for name in names:
    print(name)  # 输出:Bob↩️Jack↩️Alex↩️Tom

9. 创建数值列表

Python 函数range()让你能够轻松地⽣成⼀系列的数。

1. 使用 range()函数

  • 示例
for value in range(1, 5):
    print(value)  # 输出: 1↩️2↩️3↩️4

2. 使用 range()创建数值列表

要创建数值列表,可使⽤list()函数将range()的结果直接转换为列表。如果将range()作为list()的参数,输出将是⼀个数值列表。

  • 示例
numbers = list(range(1, 6))
print(numbers)  # 输出: [1, 2, 3, 4, 5]

在使⽤range()函数时,还可指定步⻓。为此,可以给这个函数指定第三个参数,Python 将根据这个步⻓来⽣成数。在下面⽰例中,range()函数从2开始数,然后不断地加2,直到达到或超过终值11

  • 示例 打印 1〜10 的偶数
numbers = list(range(2, 11, 2))
print(numbers)  # 输出: [2, 4, 6, 8, 10]

3. 数值列表执行简单的统计计算

  • 示例
digits = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
# 最小值
min(digits)
print(min(digits))  # 输出: 0
# 最大值
max(digits)
print(max(digits))  # 输出: 9
# 求和
sum(digits)
print(sum(digits))  # 输出: 45

10. 列表推导式

列表推导式(list comprehension)将 for 循环和创建新元素的代码合并成⼀⾏,并⾃动追加新元素。列表推导式让你只需编写⼀⾏代码就能⽣成这样的列表。

squares = [value**2 for value in range(1, 11)]
print(squares)  # 输出: [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

11. 切片

要创建切⽚,可指定要使⽤的第⼀个元素和最后⼀个元素的索引。与range()函数⼀样,Python 在到达指定的第⼆个索引之前的元素时停⽌。输出列表中的前三个元素,需要指定索引03,这将返回索引分别为012的元素。

  • 示例
names = ['李白', '杜甫', '王维', '苏轼', '白居易']
print(names[0:3])  # 输出: ['李白', '杜甫', '王维']
# 如果没有指定第一个索引,Python 将自动从列表开头开始
print(names[:4])  # 输出: ['李白', '杜甫', '王维', '苏轼']
# 如果要提取从第三个元素到列表末尾的所有元素,可将起始索引指定为 2,并省略终止索引
print(names[2:])  # 输出: ['王维', '苏轼', '白居易']

遍历切片

names = ['李白', '杜甫', '王维', '苏轼', '白居易']
for name in names[:3]:
    print(name)  # 输出: 李白↩️杜甫↩️王维

12. 复制列表

# 我的水果列表
my_fruit = ['苹果', '香蕉', '橘子', '火龙果']
# 将我的水果列表复制给朋友
friends_fruit = my_fruit[:]
# 我的水果
print(my_fruit)  # 输出: ['苹果', '香蕉', '橘子', '火龙果']
# 我的朋友的水果
print(friends_fruit)  # 输出: ['苹果', '香蕉', '橘子', '火龙果']

13. 元组

列表⾮常适合⽤于存储在程序运⾏期间可能变化的数据集。列表是可以修改的,这对于处理⽹站的⽤户列表或游戏中的⾓⾊列表⾄关重要。然⽽,你有时候需要创建⼀系列不可修改的元素,元组可满⾜这种需求。Python 将不能修改的值称为不可变的,⽽不可变的列表称为元组(tuple)。

定义元组

元组看起来很像列表,但使⽤圆括号⽽不是⽅括号来标识。定义元组后,就可使⽤索引来访问其元素,就像访问列表元素⼀样。

  • 示例
num = (200, 50)
print(num[0])  # 输出: 200
print(num[1])  # 输出: 50

遍历元组中的所有值

  • 示例
num = (200, 50)
for i in num:
    print(i)  # 输出: 200 50

修改元组变量

虽然不能修改元组的元素,但可以给表⽰元组的变量赋值。相⽐于列表,元组是更简单的数据结构。如果需要存储⼀组在程序的整个⽣命周期内都不变的值,就可以使⽤元组。

  • 示例
num = (200, 50)
for i in num:
    print(i)  # 输出: 200 50
# 重新赋值
num = (400, 100)
for i in num:
    print(i)  # 输出: 400 100

给TA打赏
共{{data.count}}人
人已打赏
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索