2014-09-25 91 views
0

list = [「car」,「bus」,「car」,「truck」,「van」,「bus」,「truck」]如何在列表中打印兩個相同項目的索引值?

說我想讓所有的「汽車」到「自行車」。我知道如何通過索引等方式爲第一輛「汽車」做到這一點。但是,我會如何將所有「汽車」同時更換爲自行車?我想知道如何計算「car」的所有實例,然後索引多次「car」在列表中,但如果我通常這樣做,那麼只返回第一個實例?

回答

2
my_list = ["car", "bus", "car", "truck", "van", "bus", "truck"] 
my_list[:] = ["bikes" if ele == "car" else ele for ele in my_list] 

my_list 
['bikes', 'bus', 'bikes', 'truck', 'van', 'bus', 'truck'] 

要獲得索引使用enumerate

indexes = [ind for ind,ele in enumerate(my_list) if ele =="car"] 

和車數將索引列表的長度:

car_count = len(indexes) 
+0

什麼是使用'my_list的優勢[:] = ...'over my_list = ...'? – 2014-09-25 19:12:10

+1

@RogerFan,'my_list'仍然指向與使用'my_list ='創建新對象相同的對象 – 2014-09-25 19:13:19

+0

但是列表理解正在創建新對象。爲什麼要採取額外的步驟試圖將它放到最初的'my_list'對象中?只需將標籤移至新列表即可。我想這可能很重要,如果有一個本地/全局變量的事情發生? – 2014-09-25 19:15:16

相關問題