2017-01-10 40 views
1

在給定的代碼中,我從包含字典的data_points列表中提取第一列。字典的鍵包含(x,y)座標的元組。我從鍵中提取minX和minY。我如何壓縮代碼?如何使列表理解提取元組到2個不同的列表?

x_list = [] 
    y_list = [] 
    keys = data_points[0].keys() 
    for i in keys: 
     x_list.append(i[0]) 
     y_list.append(i[1]) 

    min_value = (min(x_list), min(y_list)) 
+1

我不認爲這是列出的帖子的誘惑,這就是爲什麼我在我的回覆中列出了該帖子,但沒有將其標記爲相同的誘惑。 OP需要分離元組列表。問題不明確,但這是代碼顯示的內容。 –

回答

1

zip可用於組合以及分離列表/元組。你沒有給任何樣本數據,所以我會假設:

data_points = [{ 
    (3, 0): None, 
    (1, 2): None, 
}] 
keys = data_points[0].keys() 

一個行相當於你的代碼,拆分元組,並獲取分鐘是:

min_value = (min(zip(*keys)[0]), min(zip(*keys)[1])) 

有一些注意事項有拉鍊的python 2及其創建潛在的大型中間結構。有關更多信息,請參見here

相關問題