[英]Multi dimensional array in Python
作为python中的菜鸟,我在多维数组中苦苦挣扎,我拥有这一部分
def listMembers(Members):
for name in Names:
age=Ages[name]
print (name,age)
Names = ["John","William","Sarah"]
Ages = [22,33,44]
Members=[Names,Ages]
listMembers(Members)
并预期结果:
John, 22
Willem, 33
Sarah, 44
我必须改变什么才能得到这个?
您可以使用enumerate
执行任务...
def listMembers():
for i,name in enumerate(Names):
age=Ages[i]
print (name,age)
输出-
John 22
William 33
Sarah 44
但是正如评论中所说,最好在这里使用字典
另一种方法是使用zip
def listMembers():
for i,j in zip(Names, Ages):
print (i,j)
编辑:
如评论中所述,您可以在不进行直接引用的情况下完成此操作,就像在现实世界中一样,该函数将封装在另一个类中,因此您将无法直接访问数据。
def listMembers(Members):
names = Members[0]
ages = Members[1]
for i, j in zip(names, ages):
print (i, ", ", j)
您可以使用zip
内置功能:
Names = ["John", "William", "Sarah"]
Ages = [22, 33, 44]
for name, age in zip(Names, Ages):
print name, ',', age
其他答案显示了Python中很酷的内置快捷方式。 但是,恕我直言,您应该首先真正重新了解基础知识并走很长的路。
以下代码使用基本功能创建一个整数列表(在您的情况下为[0,1,2]
),这些整数将进行迭代以相应地对数组进行切片。 此代码假定名称和年龄具有相同数量的索引。
def listMembers(Members):
names = Members[0] # slice off the first dimension
ages = Members[1] # slice off the first dimension
names_len = len(names) # get the length of names
for i in xrange(names_len): # xrange builds a list from 0 to given length.
print (names[i], ages[i]) # print off the second dimension
Names = ["John","William","Sarah"]
Ages = [22,33,44]
Members=[Names,Ages]
listMembers(Members)
这是您要寻找的解决方案。 它从Members
参数获取所需的所有信息,该参数可能包含任意数量的列表。 列表元素被分组,转换为字符串,并以", "
并打印。 没有全局引用的Names
或Ages
:
def listMembers(Members):
for t in zip(*Members):
print(", ".join(map(str, t)))
Names = ["John","William","Sarah"]
Ages = [22,33,44]
Members=[Names,Ages]
listMembers(Members)
这是输出:
John, 22
William, 33
Sarah, 44
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.