genki-mii
@genki-mii

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

【Python】4と9を含む数字を除いた数字でリストを作成したい

スクレイピングのURLリストを作成しようとしています。
その中で4と9を除いたリストを作成したいのですが、うまくいきません。

test.py
url_list=[]

for i in range(680,1200,1):
  url_list.append(i)

これで680から1279のリストが作成されたと思いますが、
この中から

689
699
1144

など、4と9を含む数字を除外したいです。
何か良い方法はありますでしょうか?

0

3Answer

こんなんでどうでしょうか?

url_list=[]

for i in range(680,1200,1):
    str_i = str(i)
    if '4' in str_i or '9' in str_i:
        continue
    url_list.append(i)

文字列に変更して,4か9が含まれていたらcontinueする実装です.

0Like

Comments

  1. @genki-mii

    Questioner

    回答ありがとうございます。
    完璧です!

    'continueする'という思考がなかったです・・・

    非常に助かりました!

正規表現タグがありましたので正規表現を使った表現も置いておきますね

import re

[i for i in range(680, 1200) if not re.search('[49]', str(i))]
0Like

クローズ済みのところ恐縮ですが、4, 9, 以外に条件が増えても管理しやすい方法を検討してみました。

import operator
generated_list = list(filter(lambda x: all(map(operator.not_,map(f'{x}'.__contains__, ('4', '9')))),range(680, 1200)))
print(generated_list)
0Like

Your answer might help someone💌