在Python中,读取二维列表(通常表示为矩阵或表格)可以通过多种方式实现,具体取决于数据的来源和格式。以下是几种常见的方法:
方法一:从文件读取
如果你有一个包含数据的文件,比如CSV或Excel文件,你可以使用Python的内置库来读取数据。
使用csv模块读取CSV文件
import csv
打开文件
with open('data.csv', 'r', encoding='utf-8') as file:
读取所有行
rows = file.readlines()
处理每一行数据
data = []
for row in rows:
去除行尾的换行符
row = row.rstrip('\n')
使用逗号作为分隔符
values = row.split(',')
将字符串转换为整数并添加到列表中
data.append([int(value) for value in values])
print(data)
使用pandas库读取Excel文件
import pandas as pd
读取Excel文件
df = pd.read_excel('data.xlsx')
转换为二维列表
data = df.values.tolist()
print(data)
方法二:从键盘输入读取
如果你希望从键盘输入读取数据,可以按行输入,每行输入用逗号或其他分隔符隔开。
获取行数
m = int(input("Enter the number of rows: "))
初始化二维列表
grid = [[] for _ in range(m)]
读取每一行数据
for i in range(m):
获取一行输入并按逗号分割
line = input(f"Enter row {i+1} separated by commas: ").split(',')
将字符串转换为整数并添加到二维列表中
for j in range(len(line)):
grid[i].append(int(line[j]))
print(grid)
方法三:合并两个表格
如果你有两个表格,并且想要合并它们,可以使用以下代码:
import xlrd
import xlwt
打开两个Excel文件
workbook1 = xlrd.open_workbook('1.xls')
workbook2 = xlrd.open_workbook('2.xls')
获取工作表
sheet1 = workbook1.sheet_by_name('Sheet1')
sheet2 = workbook2.sheet_by_name('Sheet1')
读取数据到列表
list1 = []
for i in range(sheet1.nrows - 1):
list1.append(sheet1.row_values(i + 1))
dict2 = {}
for i in range(sheet2.nrows - 1):
rows2 = sheet2.row_values(i + 1)
dict2[rows2] = rows2[1:]
合并数据
for key, value in dict2.items():
found = False
for i, row in enumerate(list1):
if row == key:
row[1:] = value
found = True
break
if not found:
list1.append(value)
将列表写回Excel文件
workbook = xlwt.Workbook()
worksheet = workbook.add_sheet('Merged Data')
for i, row in enumerate(list1):
for j, value in enumerate(row):
worksheet.write(i, j, value)
workbook.save('merged_data.xls')
以上是几种读取二维列表的常见方法,你可以根据你的具体需求选择合适的方法。