2017-07-16 6 views
-1

私は割り当てに取り組んでおり、ファイルから特定のデータを取り出す方法を理解しようとしています( 'Title' '年'、 'ジャンル'、 'ディレクター'、 'キャスト')をタプルにして、値辞書スタイルのキーとして使用できます。私は 'タイトル'と '年'を取って、次のようなタプルにしたい:( 'タイトル'、 '年')次に値を 'キャスト'(各タイトルのキャストの数が異なる)にする。これは私が思いついたものですが、ファイルから取り出してタプルに入れる方法を理解できません。どんな助けも素晴らしいでしょう、ありがとう!特定のデータをファイルから取り出して、特定のデータからタプルを作成しようとしています

Traceback (most recent call last): 
    File "C:/PyCharmWorkspace/HW5/Problem 2(a).py", line 44, in <module> 
    list_maker(in_file) 
    File "C:/PyCharmWorkspace/HW5/Problem 2(a).py", line 20, in list_maker 
    title_year = tuple(x, y) 
UnboundLocalError: local variable 'y' referenced before assignment 
+1

これはあまり明確ではありません。あなたの入力と予想される出力を追加できますか? –

+1

'i'の値に応じて' x'または 'y'(またはそれらのどれも)が定義されますが、どちらも決して定義されません。 –

+0

また、これはコミュニティの人々から学び、助けを得るためのサイトです。本当にあなたの名前は@Buttscratcherになりたいですか? – bravosierra99

答えて

1

としてはあなたがまたは割り当てられていない可能性があり、変数を使用しようとしている、前のコメントで述べた:

def list_maker(in_file): 
    d = {} 
    for line in in_file: 
     l = line.split(",") 
     for i in l: 
      if i == l[0]: 
       x = i 
       print(i) 
      elif i == l[1]: 
       y = i 
      title_year = tuple(x, y) 
     print(title_year) # checking to see if it does what I want 

私はエラーを取得します。あなたはXに値を割り当てるが、「Yに値を割り当てられていますが、あなたはドン言われていることタプル

for i in l: <--first iteration 
     if i == l[0]: <--- True 
      x = i <--- x is assigned the value of i 
      print(i) 
     elif i == l[1]: <---- False 
      y = i  <--- DOES NOT HAPPEN 
     title_year = tuple(x, y) <--- python doesn't know what y is 

でそれを使用しようとしていないforループを通して、あなたの最初の反復forループはまったく必要ではなく、あなたはあなたの割り当てを線形的に行うことができます。

def list_maker(in_file): 
    d = {} 
    for line in in_file: 
     l = line.split(",") 
     x = l[0] 
     y = l[1] 
     title_year = (x, y) #this is all you need to generate a tuple 
     print(title_year) # checking to see if it does what I want 
+0

なぜ '(x、y)'ではなく 'tuple(x、y)'ですか?または、単に: 'title_year =(l [0]、l [1])' –

+0

私は通常、できるだけ小さなコードを変更して、ポスターが何を持っているのかを説明します。しかし、この場合、私はあなたが正しいと思う、更新しています... – bravosierra99

関連する問題