余晖~ 2022-02-05 23:12 采纳率: 93.3%
浏览 17
已结题

关于python中的dict.fromkeys函数的疑问

问题遇到的现象和发生背景

在做题目的时候把自己的代码和别人ac的代码比较,发现别人在最后输出的前面加了一句ans=list(dict.fromkeys(ans))
这一句到底有什么作用呀?

问题相关代码,请勿粘贴截图
x,y,z=map(int,input().split('/'))
ans=[]
mon=[0,31,28,31,30,31,30,31,31,30,31,30,31]
def run(x):
    if x%4==0 and x%100:return True
    if x%100==0 and x%400==0:return True
    return False
def check(x,y,z):
    if x<60:xx=2000+x
    else:xx=1900+x
    if run(xx):
        mon[2]+=1
        if z<=mon[y]:ans.append((xx,y,z))
        mon[2]-=1
    else:
        if z<=mon[y]:ans.append((xx,y,z))
#nyr
if  0<y<=12 and 0<z<=31:check(x,y,z)
#yrn
if 0<x<=12 and 0<y<=31:check(z,x,y)
#ryn
if 0<y<=12 and 0<x<=31:check(z,y,x)
ans.sort()
ans=list(dict.fromkeys(ans))                        //就是这里,这一句有什么作用??
for x in ans:
    print("{:04}-{:02}-{:02}".format(x[0],x[1],x[2]))
print(ans)
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果
  • 写回答

1条回答 默认 最新

  • SmallAntJ 2022-02-06 00:47
    关注

    ans=list(dict.fromkeys(ans))是用来去除ans里重复的元素,因为字典的键值不能重复

    >>>list(dict.fromkeys(['key1', 'key2', 'key1']))
    ['key1', 'key2']
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 2月14日
  • 已采纳回答 2月6日
  • 创建了问题 2月5日

悬赏问题

  • ¥15 微信会员卡等级和折扣规则
  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分