You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何检查随机查询词是否在Python 3.7字典的最后5个值中?

解决Twitter Bot的查询词重复检查问题

嘿,看来你已经搞定了历史查询记录的读取和有序字典构建,接下来的核心就是检查新选的随机查询词是否在最近5个历史词里,直到选出符合要求的词就行,咱们一步一步来:

第一步:提取最近5个历史查询词

因为Python 3.7+的字典是按插入顺序保存的,刚好对应你文本文件里的时间顺序,所以直接取字典值的最后5个即可——哪怕历史记录不足5条,这个切片操作也能安全返回所有已有记录:

# 获取最近5个使用过的查询词
recent_queries = list(d.values())[-5:]

第二步:循环筛选符合要求的随机查询词

假设你有一个包含所有可选查询词的列表(比如all_possible_queries),我们只需要不断随机选词,直到选出不在recent_queries里的词就行:

import random

# 替换成你实际的候选查询词列表
all_possible_queries = ["computerscience", "python", "computerprogrammer", "AI", "machinelearning", "neuralnetworks"]

selected_query = None
# 循环:如果选的词在最近5个里,就重新选
while selected_query is None or selected_query in recent_queries:
    selected_query = random.choice(all_possible_queries)

第三步:保存新的查询记录

选好符合要求的词后,别忘了把今天的日期和新词追加到文本文件里,同时也可以同步更新字典(方便后续直接使用,不用重新读文件):

from datetime import date

# 获取今天的日期,格式和你文件里的一致
today_date = date.today().isoformat()

# 追加到文本文件
with open(file_name, "a") as f:
    f.write(f"{today_date},{selected_query}\n")

# 同步更新字典
d[today_date] = selected_query

关键点说明

  • 字典的有序性是核心:Python 3.7+默认字典保留插入顺序,所以list(d.values())的顺序完全对应你文件里的时间先后,最后5个就是最近的5次使用记录。
  • 循环逻辑的容错性:哪怕候选词不多,这个循环也会一直随机选择,直到找到符合条件的词(如果所有候选词都在最近5个里,那循环会一直跑,你可以根据情况加个退出条件,比如尝试N次后提示)。

内容的提问来源于stack exchange,提问作者Brandon Jacobson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:08:07