2016-09-30 7 views
-3

私は数日間コーディングしていたので、まだコーディングが新しくなりました。私は個人的な小さなプロジェクトに取り組んで自分自身にパイソンを教えようとしています。私はリストスライスで遊んでいて、何かが私に加わるわけではないので、私がしようとしている機能を妨げている。シェルで遊んことでlist [-1:]は最後の値を返しますが、最後の値はありませんか?

(正しい用語?)私はと推測しました:

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

は、なぜこれが?リスト2は別のリストで定義されている可能性があるので、リスト1を再定義することができるので、最後のインデックスはlist1のものではないでしょうか?しかし、私は最初の指標を試してみましたが、今は混乱しています。

+4

'list2 [-1:] - > ['hello']'、どこから 'o'を取得しているのかわかりません。 'list2 [0] [ - 1] - > o'です。 'list2 [0]'も '' hello ''ではなく ''です。 –

+0

構文が間違っています。 -1の後に ":"を入れてください。 – Lagerbaer

+2

@Lagerbaer構文は問題ありません。報告された 'list2 [-1:]'の '' o ''の値は正しくありません。 – chepner

答えて

1

リストを返すlist2[-1:]、見ることができるように私はこのようにそれはだ、

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

、何を示すためのものはこの場合

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

だと思います'o'と等しくない。

-1

EDIT:下記の内容を無視してください。あなたの例では、list2は文字列 "hello"を要素として含むリストです。これは文字列 "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。私はOPの奇妙なリストを初期化することによって捨て去られました。ちょうどそれが意味をなさないところで – Lagerbaer

+0

質問のどれも本当に理にかなっていません。 –

関連する問題