2017-02-21 6 views
0

私は入力リストの数字を2乗する結果リストを作るためにマップパターンを使うことになっています。関数から正方形のリストを正しく返すようにマップパターンを取得するにはどうすればよいですか?

def square_all(list1): 
    list1 = [] 
    squared = map(lambda x: x**2, list1) 
    return squared 

私はマップパターンの構文を理解思ったが、私は機能のための私のテストケースを実行すると、それは私の関数は空のリストを返していると私はなぜ知らないことを教え続けています。

import unittest 
import map 
import point 

class TestCases(unittest.TestCase): 
    def test_1(self): 
     nums = [2,3,4] 
     self.assertEqual(map.square_all(nums), [4,9,16]) 



if __name__ == '__main__': 
    unittest.main() 
+0

あなたは、Python 3にはありますか? 'map'はPython 3でリストを返しません。 – user2357112

+3

関数の字下げが正しくありません。 'list1 = []' –

+3

も削除してください。また、モジュール 'map'を呼び出さないでください。 – user2357112

答えて

3

あなたはこれを削除し、forループを使用してこれを実行したい場合は、

def square_all(list1): 
    squared = map(lambda x: x**2, list1) 
    return squared 

に動作します、list1=[]を初期化されています

def square_all(list1): 
    squared=[] 
    for x in list1: 
     squared.append(x**2) 
    return squared 
+0

forループを使ってこれをどうやってやることができるか知っていますか? – theow

+0

が回答を更新しました –

関連する問題