2017-05-06 24 views
-3

我想通過使用列表中的位置從列表中取出每個字符來獲取單詞「Test」。如何刪除列表中沒有['']部分的項目

這裏是我的代碼:

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) 

目前從程序我的輸出是:

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

雖然這並閱讀「測試」它有[]圍繞每一封信,我不不想要。

+0

在這['str.join(迭代器)'函數]看看(https://docs.python.org/3/library /stdtypes.html#str.join)。你可以用'''.join(test1)'完成你想要的東西。 –

+0

只需使用'''.join(test1)'加入字符。否則,*不要使用切片*。使用索引:'test1 [0]'。 –

+0

@LysandrosNikolaou:錯誤的方式。 –

回答

1

[a:b]從索引a的每個值返回一個列表,直到索引b。 如果你只是想從列表中訪問一個單一的值,你只需要指向要訪問的值的索引即可。例如。

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

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

感謝您的幫助:) –

0

問題是你正在使用片段的列表而不是元素。語法l[i1,i2]返回索引i1i2之間的所有元素l的列表。如果其中一個出界,你會得到一個錯誤。做你意,你可以這樣做:

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

感謝您的幫助:) –

0

你有切片索引困惑。您正在使用切片,您應該使用索引。

切片總是返回一個與給定的選擇元素相同類型的新對象。總是切片名單再次給你一個列表:

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

索引只使用(沒有:冒號分隔開始和結束位置)各個位置,併爲您提供從列表中的各個元素:

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

不是你需要使用索引。改爲使用str.join() method;給定一個分隔符字符串,它將列表的字符串元素與中間的分隔符連接起來。使用空字符串:

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

試試這個

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

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