2017-07-03 5 views
-4
list1 = ["Noki a"] 
print (list1[0:3]) #gives ["Noki a"] as output. 

print (list1[1:3]) #gives [] empty list as ouput. 

これは実際の動作を理解していません。リスト項目にある文字列の間に空白がある場合に、リストが実際にどのように機能するかについての説明が必要です。リスト項目の値に空白が含まれていると、Pythonのリストはどのように振る舞うのですか

+0

質問には良い答えがありましたが、私はコメントとして追加したかったのです:なぜ、1つの文字列をリストに入れるのはどうですか?文字列をスライスすることができます。それはリストにある必要はありません。 「ノキア」[0:3]は「ノク」を与え、「ノキー」[1:3]は「オク」を与える。 –

答えて

4

これは、文字列に含まれるスペースとは関係ありません。あなたのリストにはインデックス0(文字列"Noki a")のアイテムが1つしかないので、スライスはインデックス0を除外しているので、スライス[1、3]は空です。

リストの代わりに文字列をスライスする必要があります。インデックスは、文字列が最初に、その後、スライス:

list1[0][1:3] 
+0

これを一歩後ろにして、文字列を単一のアイテムリストに入れても構いません。裸の文字列をスライスするだけです。 (あなたの答えに異論はありません。) –

1

あなたのリストには、"Noki a"ある一つの要素を持っています。したがって、スライス表記に基づいて、[0]を含むスライスにはその要素が含まれ、それ以外の場合は空になります。あなたは、文字列の一部をスライスすることを意図していた場合

は、リストから文字列を削除

>>> s = "Noki a" 
>>> s[0:3] 
'Nok' 
>>> s[1:3] 
'ok' 

または

を引き起こすその後、スライス(それが含まれている文字列である)あなたのリストからインデックス要素 [0]
>>> list1 = ["Noki a"] 
>>> list1[0][0:3] 
'Nok' 
>>> list1[0][1:3] 
'ok' 
0

あなたが実際に文字を出力している結果を持っているが行います

list1 = ["N", "o", "k", "i", " ", "a"] 
print (list1[0:3]) 
print (list1[1:3]) 

現在、あなたのリストに1つのアイテムがありますので、常に0番目のアイテムです.0-3の場合、0アイテム「Noki a」が印刷されますが、1-3ではそれが印刷されません。

関連する問題