-1

最初のn個の完全な正方形のリストをリスト形式で提供するPythonプログラムの作成方法についてアドバイスが必要です。出力は次のようになります。

正方形はいくつですか?:5  
[1、4、9、16、25]

これは私がこれまでに持っているものです:

n = int(raw_input("How many squares? "))

次のパートでは、最初のn個の正方形のリストを作成する必要があります。どのように何か提案はありますか?お手数をおかけしますが、よろしくお願いいたします。

4

6 に答える 6

10

リスト内包表記を使用します。

[ a*a for a in xrange(1, n + 1) ]
于 2010-11-12T03:54:20.553 に答える
4

次のパートでは、最初の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によって提供されます

于 2010-11-12T03:58:12.950 に答える
2
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)
于 2010-11-12T04:08:45.383 に答える
1

誰かがジェネレーターについて言及しました-これはあなたがこの場合それらをどのように使うかです:

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))
于 2010-11-12T10:17:30.260 に答える
0

またはマップとラムダ関数を使用

n = int(raw_input("How many squares? "))
map(lambda x: x*x, range(n))

1から開始したい場合

map(lambda x: x*x, range(1, n+1))
于 2010-11-12T03:56:27.193 に答える
0

コード:

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]
于 2012-01-12T10:15:38.223 に答える