2017-05-15 6 views
-1

私は最初の学期のpythonの学生ですので、私の質問はおそらく非常に簡単ですが、私はそれを理解することはできません。 私の仕事は、辞書から2つのキーをランダムに選択し、それらを新しいリストに挿入することです。私は、このようにそれを行っている:新しいリスト(PYTHON)から辞書の値にアクセスする方法

new_list = ["k3", "k2"] 

、今私はIF文でnew_list内の最初の項目の値を使用する必要があります。

mydict = {"k1": 10 , "k2": 20 , "k3": 30} 
new_list = random.sample(list(mydict), 2) 

はのは、新しいリストがあるとしましょう。このように:

if "value_of_k3" == 30: 
    do something 

"value of k3"の代わりに何を入力する必要がありますか? new_listとmydictを正しく接続する方法がわかりません。

+0

を行い、あなたは "もしmydict [new_list [0]] == 30:"を探していますか? – am2

答えて

0

あなたの質問は完全ではありません明らかです。しかし、私はあなたがキーのリストの最初の要素に対応するdictの値を探したいと思う。だから、あなたが行うことができます:k3.value()== 30場合

value = mydict[new_list[0]] 
+0

完璧な、それはまさに私が欲しかった!どうもありがとうございました。 – Roscon

0

キーに応じて値を「ルックアップ」するための辞書があります。もちろん

value_of_k3 = mydict["k3"] 

を、あなたがそこにリテラル"k3"を供給する必要はありません。それを行うための構文は次のとおりです。代わりにnew_list[0]を提供することができます。これは、最初はランダムに選択されたキーの実際のものです。または、変数を使用することもできます。あなたがその変数keyに名前を付け、新しいリストを反復処理するためにそれを使用することに決めたとしましょう:keyリストnew_listの要素です

for key in new_list: 
    if mydict[key] == 30: 
     NuclearWeapons.launch() 
+0

私は彼が欲しいと思うvalue_of_k3 = mydict [new_list [0]] – JeffUK

0

あなたはif mydict[key] == 30:を使用することができます。キーを使用して辞書の値にアクセスすることができます。

あなたはk3new_listの最初の要素である"k3"の値にアクセスしたいのであれば、あなたが使用してそれを行うことができます -

if mydict[new_list[0]] == 30: 

ここで0は、内の要素の位置/インデックスを示しリスト。 0からのインデックススタートとして、new_list[0]がリスト

の最初の要素を示し、あなたがnew_listのすべての要素のためにこの事をしたい場合は、次のようにループを使用 -

for k in new_list: 
    if mydict[k] == 30: 
     print k 
     # do something 
0
import random 
mydict = {"k1": 10 , "k2": 20 , "k3": 30} 
new_list = random.sample(list(mydict.keys()), 2) 

#iterate over the list to select each element from the list 
for key in new_list: 
    if mydict[key] == 30: 
    #do something 
    print "hello" 

#to get only the first element from list use indexing, it's similar to any other programming language 
key = new_list[0] 
if mydict[key] == 30: 
    #do something 
    pass 
-1

:に短縮することができ

key = new_list[0] 
value = mydict[key] 

は、私が知らない何か

関連する問題