2017-05-06 6 views
-3

Ich versuche, das Wort "Test" zu erhalten, indem Sie jedes Zeichen aus der Liste mit Positionen innerhalb es nehmen.So entfernen Sie Elemente aus einer Liste ohne den Teil ['']

Hier ist mein Code:

test1 = ["T", "E", "S", "T"] 
one = test1[0:1] 
two = test1[1:2] 
three = test1[2:3] 
four = test1[3:4] 

print(one, two, three, four) 

Im Moment aus dem Programm meiner Ausgabe ist:

['T'] ['E'] ['S'] ['T'] 

Obwohl das gelesen hat "Test" hat es [] um jeden Brief, den ich don Ich will nicht.

+0

Werfen Sie einen Blick auf diese [ 'str.join (abzählbaren)' Funktion] (https://docs.python.org/3/library /stdtypes.html#str.join). Mit ''' .join (test1)' kannst du erreichen, was du willst. –

+0

Verwenden Sie einfach '' '.join (test1) ', um die Zeichen zu verbinden. Ansonsten * verwende keine Slices *. Verwenden Sie Indizes: 'test1 [0]'. –

+0

@ LysandrosNikolaou: falsch herum. –

Antwort

1

[a:b] gibt eine Liste mit jedem Wert vom Index a bis Index b zurück. Wenn Sie nur auf einen einzelnen Wert aus einer Liste zugreifen möchten, müssen Sie nur auf den Index des Werts zeigen, auf den zugegriffen werden soll. Z.B.

s = ['T', 'e', 's', 't'] 

print(s[0]) # T 
print(s[0:1]) # ['T'] 
+0

Danke für die Hilfe :) –

0

Das Problem ist, dass Sie Scheiben der Liste nicht Elemente verwenden. Die Syntax l[i1,i2] gibt eine Liste mit allen Elementen l zwischen den Indizes i1 und i2 zurück. Wenn einer von ihnen außerhalb der Grenzen ist, erhalten Sie einen Fehler. Zu tun, was Sie soll Sie tun können:

one = test[0] 
two = test[1] 
... 
+0

Danke für die Hilfe :) –

0

Sie haben Aufschneiden und Indizierung verwirrt. Sie verwenden Slicing, wo Sie Indizierung verwenden sollten.

Slicing gibt immer ein neues Objekt des gleichen Typs mit den angegebenen Auswahlelementen zurück. eine Liste Aufschneiden immer gibt Ihnen eine Liste wieder:

>>> test1 = ["T","E","S","T"] 
>>> test1[1:3] 
['E', 'S'] 
>>> test1[:1] 
['T'] 

während Indizierung nur einzelne Positionen verwendet (keine : Doppelpunkte zu trennen Start- und Endposition), und gibt Ihnen die einzelne Elemente aus der Liste:

>>> test1[0] 
'T' 
>>> test1[1] 
'E' 

Nicht, dass Sie die Indizierung überhaupt verwenden müssen. Verwenden Sie stattdessen die str.join() method; Bei einer Trennzeichenfolge werden die Zeichenfolgenelemente einer Liste mit dem Trennzeichen dazwischen verknüpft. Verwenden Sie die leere Zeichenkette:

>>> ''.join(test1) 
'TEST' 
0

versuchen, diese

test1 = ["T","E","S","T"] 
final = "" 

for i in range(0, len(test1)): 
    final = final + str(test1[i]) 
Verwandte Themen