繁体   English   中英

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

[英]Python extracting item from sublist into variable

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

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

您可以访问子列表的元素,如下所示:

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

您将需要一个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

x是一个列表。 您可能打算使用x[0]即该列表的第一个元素。

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

您只需检查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]

您可以看到-suprise- path[0]是一个list ,因此很显然它不能与字符串比较。 您要查找的字符串是x的第一个字符串,所以它是x[0]

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

实际上,仅查看path的定义就足以找到答案-它是列表的列表,因此path[0]显然是列表; ;-)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM