问题时,使用循环和数组来缩短我的代码


async for submission in subreddit.top(subreddit):
if await client.memeCollection.find_one({'url': submission.url}):
print('Found already posted submission')
continue
else:
await client.memeCollection.insert_one({'subreddit': str(submission.subreddit), 'url': submission.url})
async for submission in subreddit1.top("day"):
if await client.memeCollection.find_one({'url': submission.url}):
print('Found already posted submission')
continue
else:
await client.memeCollection.insert_one({'subreddit': str(submission.subreddit), 'url': submission.url})
async for submission in subreddit2.top("day"):
if await client.memeCollection.find_one({'url': submission.url}):
print('Found already posted submission')
continue
else:
await client.memeCollection.insert_one({'subreddit': str(submission.subreddit), 'url': submission.url})
async for submission in subreddit3.top("day"):
if await client.memeCollection.find_one({'url': submission.url}):
print('Found already posted submission')
continue
else:
await client.memeCollection.insert_one({'subreddit': str(submission.subreddit), 'url': submission.url})

这是我目前为选定的子reddit下载模因的方法,我有不同的变量叫做subreddit1-subreddit4,每个子reddit都有不同的子reddit,

对于每个变量,我都有一个for循环。

我试图把所有的值到数组,但subreddit没有一个.top当它是一个数组,所以我不确定我怎么能绕过这个。

subreddit = ['memes', 'dankmemes', 'AdviceAnimals', 'MemeEconomy', 'ComedyCemetery', 'PrequelMemes',
'terriblefacebookmemes', 'PewdiepieSubmissions']
async for submission in subreddit.top(subreddit):
if await client.memeCollection.find_one({'url': submission.url}):
print('Found already posted submission')
continue
else:
await client.memeCollection.insert_one({'subreddit': str(submission.subreddit), 'url': submission.url})

为什么不在它之前使用一个简单的循环呢?*

topics = ['memes', 'dankmemes', 'AdviceAnimals', 'MemeEconomy', 'ComedyCemetery', 'PrequelMemes',
'terriblefacebookmemes', 'PewdiepieSubmissions']
for topic in topics:  # <-- normal loop here 😅
async for submission in subreddit.top(topics):
if await client.memeCollection.find_one({'url': submission.url}):
print(f'Found already posted submission {topic}')
else:
await client.memeCollection.insert_one({'subreddit': str(submission.subreddit), 'url': submission.url})
subredditList = ['memes', 'dankmemes', 'AdviceAnimals', 'MemeEconomy', 'ComedyCemetery', 'PrequelMemes',
'terriblefacebookmemes', 'PewdiepieSubmissions']
newSublist = [await reddit.subreddit(x) for x in subredditList]
print(newSublist)
for x in newSublist:
async for submission in x.top('day'):
if await client.memeCollection.find_one({'url': submission.url}):
print('Found already posted submission')
continue
else:
await client.memeCollection.insert_one({'subreddit': str(submission.subreddit), 'url': submission.url})

必须创建一个新的列表并追加,然后在另一个循环中循环该列表以获得顶部,感谢指导!

最新更新