最初のn個の完全な正方形のリストをリスト形式で提供するPythonプログラムの作成方法についてアドバイスが必要です。出力は次のようになります。
正方形はいくつですか?:5 [1、4、9、16、25]
これは私がこれまでに持っているものです:
n = int(raw_input("How many squares? "))
次のパートでは、最初のn個の正方形のリストを作成する必要があります。どのように何か提案はありますか?お手数をおかけしますが、よろしくお願いいたします。
最初のn個の完全な正方形のリストをリスト形式で提供するPythonプログラムの作成方法についてアドバイスが必要です。出力は次のようになります。
正方形はいくつですか?:5 [1、4、9、16、25]
これは私がこれまでに持っているものです:
n = int(raw_input("How many squares? "))
次のパートでは、最初のn個の正方形のリストを作成する必要があります。どのように何か提案はありますか?お手数をおかけしますが、よろしくお願いいたします。
リスト内包表記を使用します。
[ a*a for a in xrange(1, n + 1) ]
次のパートでは、最初のn個の正方形のリストの作成を開始する必要があります。どのように何か提案はありますか?お手数をおかけしますが、よろしくお願いいたします。
これはあなたが助けることができるものです。他の部分については、アルゴリズムを投稿してください。
範囲を使用してリストを生成します。
>>> range(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
リスト内包表記を使用してx^2のリストを取得します
>>> [x**2 for x in range(10)]
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
>>>
よりエレガントな答えはNovikovによって提供されます
n = int(raw_input("How many squares? "))
map((2).__rpow__, range(1, n+1))
また
from operator import mul
n = int(raw_input("How many squares? "))
map(mul, *[range(1, n+1)]*2)
誰かがジェネレーターについて言及しました-これはあなたがこの場合それらをどのように使うかです:
def sq(n):
i=0
while i<n:
i+=1
yield i*i
if __name__=="__main__":
n = int(raw_input("How many squares? "))
print list(sq(n))
またはマップとラムダ関数を使用
n = int(raw_input("How many squares? "))
map(lambda x: x*x, range(n))
1から開始したい場合
map(lambda x: x*x, range(1, n+1))
コード:
list_squares=[]
for a in xrange(1, n+1):
list_squares.append(a*a)
print list_squares
ここで、nは必要な平方数のユーザー入力です。
その場合n=5
、出力は次のようになります。
[1、4、9、16、25]