2016-09-30 7 views
-3

Я по-прежнему очень новичок в кодировании, так как я кодировал несколько дней. Я пытаюсь научить себя python, работая над небольшим личным проектом. Я играю со списком, и что-то не меняет, что мешает функции, которую я пытаюсь сделать.list [-1:] возвращает последнее значение, но не == последнее значение?

Играя вокруг в оболочке (? Правильной терминологии) я сделал вывод, что:

>>> list1 = "hello" 
    >>> list2 = list(list1) 
    >>> list2[-1:] 
    >>> 'o' 
    >>> list2[-1:] == 'o' 
    >>> False 
    >>> list2[0] 
    >>> 'h' 
    >>> list2[0] == 'h' 
    >>> True 

Почему это? Сначала я подумал, что, возможно, list2 был определен другим списком, его последний индекс не будет == для list1, потому что list1 можно переопределить? Но затем я попробовал первый индекс, и теперь я смущен.

+4

'list2 [-1:] -> ['hello']', не знаю, откуда вы получаете 'o'. 'list2 [0] [- 1] -> o'. 'list2 [0]' также '' привет "' не 'h'. –

+0

Вы используете неправильный синтаксис. Поставьте «:» после -1. – Lagerbaer

+2

@ Lagerbaer Синтаксис прекрасен; сообщенное значение 'list2 [-1:]' as ''o'' неверно. – chepner

ответ

1

Я предполагаю, что вы имели в виду, чтобы показать это

>>> list1 = 'hello' 
>>> list1 
'hello' 
>>> list2 = list(list1) 
>>> list2 
['h', 'e', 'l', 'l', 'o'] 

В этом случае

>>> list2[-1] 
'o' 
>>> list2[-1:] 
['o'] 

Как вы можете видеть, list2[-1:] возвращает список, таким образом, это не равным 'o'.

-1

РЕДАКТИРОВАТЬ: Игнорируйте нижеследующее. В вашем примере list2 - это список, содержащий в качестве элемента строку «hello». Это отличается от строки «привет».


Синтаксис списка в pythpm равен [from:to:stepsize]. Если вы опустите какое-либо из них, все остальное подразумевается в вещах, которые «имеют смысл». Например,

list2[:3] == 'hel'
list2[1:] == 'ello'
list2[::-1] == 'olleh'
Наконец, если у вас нет каких-либо двоеточие там, вы обращаетесь один элемент.

list2[0] == 'h'
list2[-1] == 'o'

+0

'list2 [:: - 1] -> ['hello']', вы нарезаете список, вы получаете список. –

+0

Argh. Я был отброшен из-за неожиданной инициализации списка OPs, где это просто не имеет смысла. – Lagerbaer

+0

Ни один вопрос не имеет смысла. –

Смежные вопросы