14天玩转Python----Day12:Python数据类型详解之列表

作者:大家好,我是阿旭
支持我:点赞收藏⭐️留言
系列专栏:

目录

      • Python数据类型详解之列表
        • 创建Python列表
        • 访问列表元素
          • 列表正索引
          • 列表负索引
        • Python中的列表切片
        • 添加/更改列表元素
        • 删除列表元素

Python数据类型详解之列表

Python列表是最通用的数据类型之一,它允许我们同时处理多个元素。
例如:

# 编程语言列表
['Python', 'C++', 'JavaScript']

创建Python列表

在Python中,通过将元素放在用逗号分隔的方括号[]中创建列表。

# 数字列表
my_list = [1, 2, 3]

一个列表可以有任意数量的项,它们可以是不同类型的(整数、浮点数、字符串等)。

 # 空列表
my_list = []

# 存储不同类型的数据
my_list = [1, "Hello", 3.4]

一个列表还可以将另一个列表作为元素,这叫做嵌套列表。

# 嵌套列表
my_list = ["mouse", [8, 4, 6], ['a']]

访问列表元素

访问列表元素的方法有很多种。

列表正索引

我们可以使用索引操作符[]来访问列表中的项。在Python中,索引从0开始。所以,一个有5个元素的列表的索引从0到4。
试图访问这些以外的索引将引发IndexError。索引必须为整数。我们不能使用float或其他类型,这将导致TypeError。
使用嵌套索引访问嵌套列表。

my_list = ['p', 'r', 'o', 'b', 'e']

# 第一个元素
print(my_list[0])  # p

# 第三个元素
print(my_list[2])  # o

# 第五个元素
print(my_list[4])  # e

# 嵌套列表
n_list = ["Happy", [2, 0, 1, 5]]

print(n_list[0][1])

print(n_list[1][3])

# 错误!索引只能使用整数
print(my_list[4.0])

输出

p
o
e
a
5
Traceback (most recent call last):
  File "", line 21, in <module>
TypeError: list indices must be integers or slices, not float
列表负索引

Python允许对其序列进行负索引。-1的索引指向最后一项,-2指向最后一项,以此类推。

# 列表中的负索引
my_list = ['p','r','o','b','e']

# 最后一个元素
print(my_list[-1])

# 倒数第五个元素
print(my_list[-5])

输出

e
p

Python中的列表切片

我们可以通过使用切片操作符:来访问列表中的一段数据项。

# Python中的列表切片

my_list = ['p','r','o','g','r','a','m','i','z']

# 索引2到索引4的元素
print(my_list[2:5])

# 从索引5到结束的元素
print(my_list[5:])

# 素从开始到结束
print(my_list[:])

输出

['o', 'g', 'r']
['a', 'm', 'i', 'z']
['p', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'z']

添加/更改列表元素

列表是可变的,这意味着它们的元素可以改变,不像字符串或元组。
可以使用赋值操作符=来更改一项或一组项的范围。

odd = [2, 4, 6, 8]

# 改变第一项   
odd[0] = 1            

print(odd)

#  改变索引为1,2,3的项
odd[1:4] = [3, 5, 7]  

print(odd) 

输出

[1, 4, 6, 8]
[1, 3, 5, 7]

我们可以使用append()方法向列表中添加一项,也可以使用extend()方法添加几项。

#  在Python中追加和扩展列表
odd = [1, 3, 5]

odd.append(7)

print(odd)

odd.extend([9, 11, 13])

print(odd)

输出

[1, 3, 5, 7]
[1, 3, 5, 7, 9, 11, 13]

我们也可以使用+操作符来合并两个列表。这也被称为连接。
*操作符重复给定次数的列表。

odd = [1, 3, 5]

print(odd + [9, 7, 5])

print(["re"] * 3)

输出

[1, 3, 5, 9, 7, 5]
['re', 're', 're']

此外,我们可以通过使用insert()方法在期望的位置插入一个项,或者通过将它压缩到列表的空片中插入多个项。

# Demonstration of list insert() method
odd = [1, 9]
odd.insert(1,3)

print(odd)

odd[2:2] = [5, 7]

print(odd)

输出

[1, 3, 9]
[1, 3, 5, 7, 9]

删除列表元素

我们可以使用Python的del语句从列表中删除一个或多个条目。它甚至可以完全删除列表。

my_list = ['p', 'r', 'o', 'b', 'l', 'e', 'm']

# 删除一个元素
del my_list[2]

print(my_list)

#  删除多个元素
del my_list[1:5]

print(my_list)

# 删除列表
del my_list

# Error: List not defined
print(my_list)

输出

['p', 'r', 'b', 'l', 'e', 'm']
['p', 'm']
Traceback (most recent call last):
  File "", line 18, in <module>
NameError: name 'my_list' is not defined

我们可以使用remove()来删除给定的项,或者使用pop()来删除给定索引处的项。
如果没有提供索引,pop()方法将删除并返回最后一项。这有助于我们将列表实现为栈(先进,最后出的数据结构)。
而且,如果必须清空整个列表,可以使用clear()方法。

my_list = ['p','r','o','b','l','e','m']
my_list.remove('p')

# Output: ['r', 'o', 'b', 'l', 'e', 'm']
print(my_list)

# Output: 'o'
print(my_list.pop(1))

# Output: ['r', 'b', 'l', 'e', 'm']
print(my_list)

# Output: 'm'
print(my_list.pop())

# Output: ['r', 'b', 'l', 'e']
print(my_list)

my_list.clear()

# Output: []
print(my_list)

最后,我们还可以通过将一个空列表分配给一个元素片来删除列表中的项。

>>> my_list = ['p','r','o','b','l','e','m']
>>> my_list[2:3] = []
>>> my_list
['p', 'r', 'b', 'l', 'e', 'm']
>>> my_list[2:5] = []
>>> my_list
['p', 'r', 'm']

支持我:点赞收藏⭐️留言
系列专栏:14天玩转Python

你可能感兴趣的:(14天玩转Python,python)