2016-11-05 19 views
-1

誰かがそれはzip()、またはlist comprehensionsのような関数に建てられたのpythonを使用せずに行われるだろうか、複数の反復変数で複数のリストを反復処理したい場合? lenのようにいくつかの基本的な機能が許されています。Pythonのリスト複数の反復

私はこのコードで、この作品を作るしようとしている:私は第一と第一の要素を乗算する新しいリストを取得しようとしています

list1 = [1,2,3] 
list2 = [4,5,6] 
list3 = [] 

def function(): 
    for i,y in (list1, list2): 
     total = i * y 
     list3.append(total) 
    return list3 
print(function()) 

しかし、私はエラー

"ValueError: too many values to unpack (expected 2)".

を取得他のリストの要素などがあります。

+0

に使うのですか?代わりにインデックスを使うことを考えましたか( 'return list1 [i] * list2 [i] * list3 [i]')? – jonrsharpe

+1

'zip()'を使わない理由はありますか?あなたは 'for first in(list1、list2、list3)'のために行くことができます。 – Jan

+1

'zip'を使用します。それがそこにある理由(その理由の1つ)です。 – Evert

答えて

1

2つの配列がequal by sizeの場合。答えは下に

list1 = [2,2,2] 
    list2 = [3,3,3] 

    def function(): 
     for i in range(len(list1)): 
      print(list1[i]*list2[i]) 
    print(function()) 

右であるしかし、最善の方法は、あなたが提供する機能を使用したくないのはなぜzip方法

for i, j in zip(list1, list2): 
    print(i * j) 
+0

@tayrix私の解決策はあなたの問題を解決しましたか? –

+0

はい、私はそれをしました、ありがとうございました。このようなリストの各インデックスを介してアクセスすることは私には起こりません。皆のために謝罪する必要があります。私は質問をはっきりと定義していたと思っていましたが、私はまだプログラミングに新しいので、人々を困惑させるようなものを投稿しました。 – tayrix

+0

私の解決策があなたの問題をsloved、upvoteと正解としてマーク –

関連する問題