声明一个 Python list: 语法和示例
在本文中,我们将研究在 Python 中声明 list 的不同方法。
下面是我们要介绍的内容:
- 声明和初始化一个空 list
- 声明一个二维列表
- 使用
range()
和for
语句声明列表 - 声明给定长度的列表
- 声明字符串、类等的列表
- 声明全局变量列表
1. 声明一个空 list
在 Python 中声明和初始化空 list 有几种方法。下面是一些例子
1.1. 使用括号
首先,你可以使用空括号声明,像这样
my_list = []
1.2. 使用list()
函数
下面是如何使用list()
函数初始化一个空列表。
my_list = list()
2. 声明二维空列表
创建二维空列表时,也可以使用方括号来定义,如下所示
matrix = [ [], [] ]
大多数情况下,通过指定行数和列数来创建。
2.1. 使用for语句声明二维列表
要做到这一点,您可以使用一个for循环,如下所示
rows = 3
cols = 4
my_list = []
for _ in range(rows):
inner_list = []
for _ in range(cols):
inner_list.append(None)
my_list.append(inner_list)
2.2. 使用列表压缩声明二维列表
另外,你也可以使用列表理解来编写更简单的代码。
rows = 3
cols = 4
my_list = [[None for _ in range(cols)] for _ in range(rows)]
# Output
[
[None, None, None, None],
[None, None, None, None],
[None, None, None, None]
]
3. 使用 range()
函数声明任意长度的 list
Python list 不是一个长度可以指定或限定的数据类型。 要声明一个特定长度的 list,必须使用一个假值来代替。
下面的示例代码通过填充 0
来声明一个任意长度的 list。
您可以使用 range()
函数编写类似的代码。
list_count = 5
list_5 = [ 0 for _ in range(list_count) ]
# output
[0, 0, 0, 0, 0]
3.1. 声明特定字符串或类的列表
使用上述相同的方法,您可以轻松地声明一个任意长度的给定字符串或类的列表。
例如,您可以遍历一个给定的字符串,或者创建一个包含以下内容的列表
list_count = 5
list_5_a = [ 'a' for _ in range(list_count) ]
# output
['a', 'a', 'a', 'a', 'a']
您也可以使用chr()
函数来表示不同于以下内容的字符串、
row = 4
col = 3
matrix = [ [chr(97 + i + j) for i in range(col)] for j in range(row)]
# output
[['a', 'b', 'c'],
['b', 'c', 'd'],
['c', 'd', 'e'],
['d', 'e', 'f']]
也可以声明特定类的列表。
class Student:
def __init__(self, age):
self.age = age
def __repr__(self):
return f'Student(age:{self.age})'
def __str__(self):
return f'Student(age:{self.age})'
list_count = 5
matrix = [ Student(age) for age in range(list_count) ]
# output
[Student(age:0), Student(age:1), Student(age:2), Student(age:3), Student(age:4)]
4. 声明一个全局变量列表
Python 没有单独的函数来声明全局变量;所有在顶层作用域中声明的变量都可以作为全局变量使用。
如果你需要声明一个特定的 list 作为全局变量,你可以通过在 list 变量前加上 global
关键字,在其它作用域中使用它,比如函数。
# init as global
my_list = []
def add_to_list(value):
global my_list
my_list.append(value)
add_to_list(1)
add_to_list(2)
print(my_list)
# Output: [1, 2]
结论
我们已经看到了几种声明 Python list 的不同方法。 它很简单,但也是所有数据结构声明的基础。
我希望这篇文章能对你的实际开发有所帮助。
