Python извлекает элемент из подсписка в переменную - PullRequest
0 голосов
/ 07 сентября 2018

Я пытаюсь использовать определенные элементы в этом подсписке и использовать его в операторе if, который не хочет работать, вероятно, он не замечает, просто не могу что-то найти на нем

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

Ответы [ 4 ]

0 голосов
/ 07 сентября 2018

Эту проблему вы могли бы легко решить самостоятельно, просто проверив значение path[0] в вашей оболочке python:

$ 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] это список, очевидно; -)

0 голосов
/ 07 сентября 2018

Вам понадобится цикл 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
0 голосов
/ 07 сентября 2018

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)
0 голосов
/ 07 сентября 2018

Вы можете получить доступ к элементам подсписка, как показано ниже:

path = [['Start', 'Centre', 2], ['East', 3, 2], ['West', 6, 3], ['North', 1, 1]]
x = path[0][0]
if x == 'Start':
    print(x)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...