余晖~ 2022-02-05 23:12 采纳率: 90.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 请问这个代码哪里有问题啊
  • ¥20 python--version在命令端输入结果Python is not defined怎么办?还有pip不是exe格式是不是没安装成功?
  • ¥15 通过GaussianView进行结构微调消除虚频
  • ¥15 调用transformers库
  • ¥15 由于导出的数据名字中带有/,导致Matlab打不开,怎么办?
  • ¥15 新硬盘安装的程序总是崩溃,提示遇到错误
  • ¥15 openpcdet自制数据集评估bev精度和3d精度相同
  • ¥15 excel 上下按钮 显示行
  • ¥20 云卓h12pro 数传问题