2017-09-10 8 views
-1

このコードは機能せず、「IndexError:リストのインデックスが範囲外です」というエラーが表示されますが、作業?ありがとう。これはなぜ動作しないのですか? - > [cp_props [x]] [1]

print([cp_props[x]][1]) 

それはanothertリストの名前である、リスト内の項目の名前を取得し、そのリスト中の2番目の要素を開く必要があります?

わかりましたので、それは今、このように動作します:

globals()[cp_props[x]][1] 

しかし、それを行うための任意の他のより簡単な方法はありますか?ありがとうございました。

+0

配列はすべての元気な言語で0から始まるため、それは数学的な方法*をより簡単にします。 – o11c

+1

'[cp_props [x]]'と 'globals()[cp_props [x]]'には2つの全く異なる意味があります。最初はリストを作成し、2番目はグローバルディクショナリにインデックスを付けます。 –

+0

ああ、ありがとう@JeffMercado – Jamie

答えて

1

[cp_props[x]]は、1要素のリストです。その唯一の要素はcp_props[x]です。これは要素番号0です。要素番号1がないため、選択式[1]が失敗します。

globals()[cp_props[x]][1]はまったく異なる意味を持ちます。左から右へ読む:

  1. globals()はグローバル変数のリストです。
  2. globals()[cp_props[x]]は、そのリストからの選択です。つまり、グローバル変数です。
  3. globals()[cp_props[x]][1]は、の2番目の要素であり、そのグローバル変数はです。
+0

私はそれを印刷機能に入れたいので、print([cp_props [x]] [1])、それでも問題はありますか?湾曲したブラケットを使うべきですか? – Jamie

+0

ああ、ありがとう、それはそれを説明する、ありがとう、だから大域()とそれは大丈夫ですか? – Jamie

+0

Pythonで括弧を使用する方法について教えてください。 – DyZ

関連する問題