Python从子列表中提取项目到变量

时间:2018-09-07 07:04:15

标签: python python-3.x list nested

我正试图在此子列表中使用某些项目,并在if语句中使用它,使其不想工作,这似乎是被遗忘了,只是似乎找不到任何内容

path = [['Start', 'Centre', 2], ['East', 3, 2], ['West', 6, 3], ['North', 1, 1]]
x = path[0]
if x == 'Start':
    print(x)

4 个答案:

答案 0 :(得分:0)

您可以访问以下子列表的元素:

path = [['Start', 'Centre', 2], ['East', 3, 2], ['West', 6, 3], ['North', 1, 1]]
x = path[0][0]
if x == 'Start':
    print(x)

答案 1 :(得分:0)

您将需要一个for循环来标识所有满足您条件的子列表。在这里,我们将其包装在一个生成器表达式中以保持其懒惰:

path = [['Start', 'Centre', 2], ['East', 3, 2], ['West', 6, 3], ['North', 1, 1]]

for value in (var for var, *others in path if var == 'Start'):
    print(value)

# Start

答案 2 :(得分:0)

let url = NSURL(string: objPath!) let asset = MDLAsset(url: url! as URL) let node = SCNNode(mdlObject: asset.object(at: 0)) node.geometry?.firstMaterial?.diffuse.contents = NSColor.red scnView.scene?.rootNode.addChildNode(node) 是一个列表。您可能打算使用x,即该列表的第一个元素。

x[0]

答案 3 :(得分:0)

只要检查python shell中path[0]的值,即可轻松解决此问题:

$ python3
Python 3.6.5 (default, Apr  1 2018, 05:46:30) 
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 
>>> path = [['Start', 'Centre', 2], ['East', 3, 2], ['West', 6, 3], ['North', 1, 1]]
>>> x = path[0]
>>> x
['Start', 'Centre', 2]

您会看到-惊奇-path[0]list,因此很显然它不能与字符串进行相等比较。您要查找的字符串是x中的第一个字符串,因此它是x[0]

>>> x[0] == "Start"
True

实际上,仅查看path的定义就足以发现这一点-它是列表的列表,所以path[0]显然是列表;-)