簡體   English   中英

迭代python列表(另一個列表中第二個項目的列表)

[英]iterate on python list (a list from second item from another list)

我有以下形式的清單:

[['id_5', 4], ['id_6', 4], ['id_7', 4], ['id_0', 12], ['id_1', 4], ['id_2', 8], ['id_3', 8], ['id_4', 4], ['id_8', 1]]
[['id_5', 5], ['id_6', 5], ['id_7', 5], ['id_0', 15], ['id_1', 5], ['id_2', 10], ['id_3', 10], ['id_4', 5]]

我只想要每個列表的第二個元素。

所需的輸出:

[4,4,4,12,4,8,8,4,1]
[5,5,5,15,5,10,10,5]

要么:

4 4 4 12 4 8 8 4 1 
5 5 5 15 5 10 10 5 

我嘗試了這段代碼:

for i in range(0,len(vectorized)):
    for j in range (0,len(vectorized[i])):
        print(vectorized[i][j][1])

但是我的輸出是:

4
4
4
12
4
...

謝謝。

嘗試列表理解:

list1 = [['id_5', 4], ['id_6', 4], ['id_7', 4], ['id_0', 12], ['id_1', 4], ['id_2', 8], ['id_3', 8], ['id_4', 4], ['id_8', 1]]
list2 = [['id_5', 5], ['id_6', 5], ['id_7', 5], ['id_0', 15], ['id_1', 5], ['id_2', 10], ['id_3', 10], ['id_4', 5]]
list1_out = [i[1] for i in list1]
list2_out = [i[1] for i in list2]

輸出

[4, 4, 4, 12, 4, 8, 8, 4, 1] # list1_out
[5, 5, 5, 15, 5, 10, 10, 5] # list2_out

有不同的方法,簡單的理解就可以做到:

[x[1] for x in l]

同樣與mapoperator.itemgetter

from operator import itemgetter
list(map(itemgetter(1), l))

為了打印結果,您可以打開包裝進行打印:

print(*out_list)

例如:

>>> l = [['id_5', 4], ['id_6', 4], ['id_7', 4], ['id_0', 12], ['id_1', 4], ['id_2', 8], ['id_3', 8], ['id_4', 4], ['id_8
', 1]]
>>> from operator import itemgetter
>>> out_list = list(map(itemgetter(1), l))
>>> out_list
[4, 4, 4, 12, 4, 8, 8, 4, 1]
>>> print(*out_list)
4 4 4 12 4 8 8 4 1

全部作為一個班輪:

>>> print(*(x[1] for x in l))
4 4 4 12 4 8 8 4 1

嘗試這個:

a = [['id_5', 4], ['id_6', 4], ['id_7', 4], ['id_0', 12], ['id_1', 4], ['id_2', 8], ['id_3', 8], ['id_4', 4], ['id_8', 1]]
b = [['id_5', 5], ['id_6', 5], ['id_7', 5], ['id_0', 15], ['id_1', 5], ['id_2', 10], ['id_3', 10], ['id_4', 5]]
x = list(list(zip(*a))[1])
y = list(list(zip(*b))[1])
print(x)
print(y)

輸出:-

[4, 4, 4, 12, 4, 8, 8, 4, 1]
[5, 5, 5, 15, 5, 10, 10, 5]

除非我遺漏了一些東西,否則您會過於復雜。 只需遍歷主列表並打印在每個循環中獲得的列表的第二個元素,例如:

for i in big_list:
    print i[1]  

Python有一些遍歷列表的非常好的方法,因此您不需要使用range方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM