![](/img/trans.png)
[英]Python Extracting items from a sublist if they match an item in another list's sublist
[英]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.