在Python编程中,二维列表是一种常见的数据结构,广泛应用于各种场景,那么如何优雅地输入二维列表呢?今天就来详细聊聊这个话题,希望能帮助到有需要的小伙伴们。
我们需要了解什么是二维列表,二维列表就是一个列表里嵌套着多个小列表,它可以用来表示表格、矩阵等数据,我将介绍几种输入二维列表的方法。
直接赋值
最简单的方法就是直接给二维列表赋值,我们要创建一个3x3的矩阵,可以这样写:
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
这种方法适用于列表中的元素已知且数量不多的情况。
循环输入
当我们需要动态地从用户那里获取输入时,可以使用嵌套循环,以下是一个示例:
rows = int(input("请输入行数:"))
cols = int(input("请输入列数:"))
# 初始化一个空二维列表
matrix = []
for i in range(rows):
row = []
for j in range(cols):
element = int(input(f"请输入第{i+1}行第{j+1}列的元素:"))
row.append(element)
matrix.append(row)
这段代码会根据用户输入的行数和列数,循环获取每个位置的元素,最后形成一个完整的二维列表。
列表推导式
列表推导式是Python中一种简洁且强大的语法,可以用来创建列表,下面是一个使用列表推导式创建二维列表的例子:
rows = int(input("请输入行数:"))
cols = int(input("请输入列数:"))
matrix = [[int(input(f"请输入第{i+1}行第{j+1}列的元素:")) for j in range(cols)] for i in range(rows)]
这段代码的功能与方法二相同,但写法更为简洁。
使用函数封装
为了提高代码的复用性,我们可以将输入二维列表的逻辑封装成一个函数,如下所示:
def create_matrix(rows, cols):
matrix = []
for i in range(rows):
row = []
for j in range(cols):
element = int(input(f"请输入第{i+1}行第{j+1}列的元素:"))
row.append(element)
matrix.append(row)
return matrix
rows = int(input("请输入行数:"))
cols = int(input("请输入列数:"))
matrix = create_matrix(rows, cols)
这样,我们就可以在其他地方调用create_matrix函数来创建二维列表了。
从文件读取
我们的数据存储在文件中,这时可以从文件中读取数据来创建二维列表,以下是一个示例:
def read_matrix_from_file(file_path):
with open(file_path, 'r') as file:
matrix = []
for line in file:
row = [int(x) for x in line.split()]
matrix.append(row)
return matrix
matrix = read_matrix_from_file('data.txt')
这里,我们假设文件data.txt中的数据是以空格分隔的,每行代表二维列表中的一行。
就是输入二维列表的几种方法,在实际应用中,我们可以根据需求选择合适的方法,希望这篇文章能帮助到大家,如果有什么疑问,欢迎在评论区交流哦!

