3 から n までの奇数を要素とするリストを作りたいらしい
data = [i + 1 for i in range(2, n, 2)]
なぜ,素直に
data = [i for i in range(3, n, 2)]
としないのかわからないし,そもそも
data = list(range(3, n, 2))
で十分なのに。「リスト内包表記」というカッコイイモノを使いたかったのかなあ?
そのあとにある,
data = [j for j in data if j % data[0] != 0]
というのもなんだかなあ
結局なにがやりたいかというと「n までの素数リストを得たい」と。
手を抜いて sympy を使おうというのはいいのだけど,
from sympy import sieve print([i for i in sieve.primerange(1,100)])これもいただけない。(sympy.sieve.primerange のオンラインヘルプにこの記述があるんだけど使用例を示すには,こんな書き方を示すのがよいのか?)
print(list(sieve.primerange(1, 100)))
だけでよいのだ。
リスト内包表記って,そんなにいいものか??
リスト内包表記以外に簡単に書く方法があれば,そのように書けばよいと思うぞ。
※コメント投稿者のブログIDはブログ作成者のみに通知されます