2017-01-10 4 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() 

をタプルを分割し、分を取得し、あなたのコードを1行と同等です:

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

でジップといくつかの注意点があります。 python 2と潜在的に大きな中間構造の作成詳細については、hereを参照してください。

関連する問題