如何在python中定义5x3字符串数组?
如何在python中定义5x3字符串数组 我想将以下数据保存在字符串数组中:如何在python中定义5x3字符串数组?,python,Python,如何在python中定义5x3字符串数组 我想将以下数据保存在字符串数组中: Name Surname Grade Steve Black 10 Jane Red 10 Peter Green 0 Kelly Pink 7 我来自C/C++语言,在这种编程语言中,它看起来是这样的: matrix[5][3]; matrix[0][0] = "Name"; matrix[0][1] = "Surname"; matrix[0][2] = "Grad
Name Surname Grade
Steve Black 10
Jane Red 10
Peter Green 0
Kelly Pink 7
我来自C/C++语言,在这种编程语言中,它看起来是这样的:
matrix[5][3];
matrix[0][0] = "Name";
matrix[0][1] = "Surname";
matrix[0][2] = "Grade";
matrix[1][0] = "Steve";
matrix[1][1] = "Black";
matrix[1][2] = "10";
...
...
...
matrix[4][0] = "Kelly";
matrix[4][1] = "Pink";
matrix[4][2] = "7";
python中有没有办法创建这样的表
如果您知道python中的数据类型及其工作方式,请告诉我。python没有多维数组,但您可以通过嵌套列表实现类似的效果 您只需在python中创建一个二维列表,并以以下方式循环填充所需的值即可-
lst = [] #currently a 1-d list but you can insert lists into it and make it a 2-d list.
#just for demo...you can loop instead to fill all the values
new_row = []
new_row.append("Steve")
new_row.append("Black")
new_row.append(10)
lst.append(new_row)
print(lst) #this would print a 2-d list - [["Steve","Black",10]]
你可以这样做:
data = \
'''
Name Surname Grade
Steve Black 10
Jane Red 10
Peter Green 0
Kelly Pink 7
'''
matrix = [line.split() for line in data.strip().split('\n')]
print(matrix)
将其放入嵌套列表中
a = [["Steve", "Black", 10], ["Jane", "Red", 10], ["Peter", "Green", 0], ["Kelly", "Pink", 7]]
你可以用这个。
将numpy作为np导入
matrix_data = np.array([["Name", "Surname", "Grade"],
["Steve", "Black", "10"],
["Jane", "Red", "10"],
["Peter", "Green", "0"],
["Kelly", "Pink", "7"]])
您可以访问使用以下代码行创建的数组元素
代码:
print(matrix_data[0][2])
Grade
matrix_data[:,2]
['Grade' '10' '10' '0' '7']
输出:
print(matrix_data[0][2])
Grade
matrix_data[:,2]
['Grade' '10' '10' '0' '7']
在尝试获取该矩阵的子集时,使用numpy特别有用,如下所示
代码:
print(matrix_data[0][2])
Grade
matrix_data[:,2]
['Grade' '10' '10' '0' '7']
输出:
print(matrix_data[0][2])
Grade
matrix_data[:,2]
['Grade' '10' '10' '0' '7']
如果将这三个列表定义为
firstnames = ["a", "b", "c", "d"]
lastnames = ["w", "x", "y", "z"]
grades = [1, 2, 3, 4]
然后您可以zip
列表,并使用列表理解作为
merged = [[e1, e2, e3] for (e1, e2, e3) in zip(firstnames, lastnames, grades)]
也许你应该先阅读官方Python教程,它会让你免除更多的问题:当我看到C++时,我强烈反对这样的矩阵。为了存储这样的信息,我会创建一个包含相关信息的结构,只需为这个结构创建一个
std::vector
。在python中,可以通过使用类或仅仅创建一个参数元组(尽管-如果你能命名它,你应该为它创建一个类!)。@Kerek我同意你的观点,这个问题只是出于学习目的。如果你省略np.array
,这段代码的工作原理完全相同。这里根本不需要NumPy。matrix\u data[:,2]
您的建议能为这段代码带来价值吗?