Python - 从二维数组中获取值

3

我有一个二维数组:

[[], ['shotgun', 'weapon'], ['pistol', 'weapon'], ['cheesecake', 'food'], []]

我该如何调用它的值?例如,我想要print(name + " " + type)并获得

霰弹枪 武器

我找不到方法去做到这一点。不知何故,print list[2][1]没有输出任何内容,甚至没有错误。


1
如果你要给你的结构命名为“list”,请小心,因为在Python中,“list”是一个保留字。 - sahhhm
2
我有一个二维数组。不,你没有,你有不规则嵌套的数组。 - Ignacio Vazquez-Abrams
4个回答

6
>>> mylist = [[], ['shotgun', 'weapon'], ['pistol', 'weapon'], ['cheesecake', 'f
ood'], []]
>>> print mylist[2][1]
weapon

记住几件事情:

  1. 不要将你的列表命名为list,这是Python保留字。
  2. 列表从索引0开始。所以mylist[0]会得到[]。同样地,mylist[1][0]会得到'shotgun'
  3. 考虑使用其他数据结构,比如字典

如果我不打算将其他内容添加到这些列表中,我会使用字典。例如,如果我有["shotgun", "weapon", "common"],它就不再是一对了 :) 不管怎样,谢谢。 - Борис Цейтлин

3

通过索引访问适用于任何序列 (字符串、列表、元组)

>>> list1 = [[], ['shotgun', 'weapon'], ['pistol', 'weapon'], ['cheesecake', 'food'], []]
>>> list1[1]
['shotgun', 'weapon']
>>> print list1[1][1]
weapon
>>> print ' '.join(list1[1])
shotgun weapon
>>>  

您可以在列表上使用 join 方法,以从列表中获取字符串。

为什么要投反对票??我应该从投反对票的人这里得到评论吗?? - Rohit Jain

0
array = [[], ['shotgun', 'weapon'], ['pistol', 'weapon'], ['cheesecake', 'food'], []]
print " ".join(array[1])

使用[1]对数组进行切片,然后使用' '.join()连接数组的内容


0
In [80]: [[], ['shotgun', 'weapon'], ['pistol', 'weapon'], ['cheesecake', 'food'], []]
Out[80]: [[], ['shotgun', 'weapon'], ['pistol', 'weapon'], ['cheesecake', 'food'], []]

In [81]: a = [[], ['shotgun', 'weapon'], ['pistol', 'weapon'], ['cheesecake', 'food'], []]

In [82]: a[1]
Out[82]: ['shotgun', 'weapon']

In [83]: a[2][1]
Out[83]: 'weapon'

要获取所有列表元素,您应该使用以下for循环。

In [89]: a
Out[89]: [[], ['shotgun', 'weapon'], ['pistol', 'weapon'], ['cheesecake', 'food'], []]

In [90]: for item in a:
    print " ".join(item)
   ....:     

shotgun weapon
pistol weapon
cheesecake food

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接