2011-12-20 7 views
0

にタプルのリストにサブ項目を選択します。ここで私はこのようなもののリスト持っているのpython

a = [[13245,0.123],[12435,0.435],[12345,0.799],[98775,0.573]...]

を私はすべてのタプルにx軸、および2番目の項目として、すべてのタプルの最初のアイテムを使用したいですy軸としてFigureをプロットする。 x = [13245,12435,12345,68775] y = [0.123,0.435,0.799,0.573]

よう

は、どのように私はそれらを選択することができますか?

+1

これらはタプルではありません。 –

+0

@ MichaelJ.Barber彼らはまったく同じように扱うことができます – hlt

+1

@androyd非常に真です。しかし、それはそれらのタプルを作ることはありません! –

答えて

6

最も簡単なのは使用することが考えられますzip

x, y = zip(*a) 
0

はこれを試してみてください:

x = [tmplist[0] for tmplist in a] 
y = [tmplist[1] for tmplist in a] 

また、[]はタプルが、リストを定義していません。しかし、あなたのケースでは、処理は等しいです。

+1

私はdownvoterのために話すことができませんが、私はなぜ私がアップヴォートを削除したかを伝えることができます。私は、リストの理解を使って 'x'を定義したばかりの断片があったときに、あなたが自分の答えを以前に投稿したように見えるのですが、他の人の後の答えをあなたのものにコピーするのはかなり失礼だと思います。 –

+0

*誰かの後の回答をコピーするのはかなり失礼だと思う*私はしなかった。私は 'zip'関数を思い出したので、私の答えを編集しました。答えの編集が終わったら、ページは自動的にリフレッシュされないので、自分の答えしか見ることができませんでした。申し訳ありませんが、私はそれをコピーしたようです、それは間違いなく私の意図ではありませんでした。あなたはそんなに気難しいので、私はそれを更新します。 – Constantinius

0

使用:

x = [] 
y = [] 
for e in a: 
    x.append(e[0]) 
    y.append(e[1]) 

編集:私も思い出してくれるzipファイルを()しませんでしたが、それは確かにそれを行うための最善の方法であります:

x, y = zip(*a) 
+0

なぜこれを下落させたのですか?それは完全に正しいです、それは動作しますか? – hlt

0

のpython、このための本当に強力な機能を持っている:)

ジップ

*が鍵となり

x,y = zip(*a) 

それを試してみてください。詳細については、文書を参照してください

0

私はxリストとy座標をプロット座標に変換する理由はわかりません。この作品ほどシンプルなものでしょうか?

for x,y in a: 
    plot(x,y) 
関連する問題