我不确定这是否是你想要的,但dict.get可能是答案:

>>> ub_tries = 20

>>> tries_dict = {1:'first', 2:'second', 3:'third', 4:'fourth', ub_tries:'last'}

>>> tries_dict.get(1, 'next')

'first'

>>> tries_dict.get(4, 'next')

'fourth'

>>> tries_dict.get(5, 'next')

'next'

>>> tries_dict.get(20, 'next')

'last'

>>> tries_dict.get(21, 'next')

'next'

当然,你可以用各种不同的方式将它包装在一个函数中.例如:

def name_try(try_number, ub_tries):

tries_dict = {1:'first', 2:'second', 3:'third', 4:'fourth', ub_tries:'last'}

return tries_dict.get(try_number, 'next')

无论如何,dict.get(key,default = None)就像dict [key],除了如果key不是成员,而不是引发KeyError,它返回默认值.

至于你的建议:

using a range as a key??

当然,你可以这样做(如果你使用的是Python 2而不是3,请使用xrange作为范围),但它会如何帮助?

d = { range(1, 5): '???',

range(5, ub_tries): 'next',

range(ub_tries, ub_tries + 1): 'last' }

这完全合法 – 但d [6]会引发KeyError,因为6与range(5,ub_tries)不同.

如果你想要这个,你可以像这样构建一个RangeDictionary:

class RangeDictionary(dict):

def __getitem__(self, key):

for r in self.keys():

if key in r:

return super().__getitem__(r)

return super().__getitem__(key)

但这远远超出了“初学者的Python”,即使对于这种非常低效,不完整和不健壮的实现,所以我不建议这样做.

finding a way to generate a list with values between 4 and ub_tries and using such list as a key

你的意思是这样的?

>>> ub_tries = 8

>>> tries_dict = {1:'first', 2:'second', 3:'third', 4:'fourth', ub_tries:'last'}

>>> tries_dict.update({i: 'next' for i in range(5, ub_tries)})

>>> tries_dict

{1: 'first', 2: 'second', 3: 'third', 4: 'fourth', 5: 'next', 6: 'next', 7: 'next', 8: 'last'}

>>> tries_dict[6]

'next'

这可行,但它可能不是一个好的解决方案.

最后,您可以使用defaultdict,它允许您将默认值烘焙到字典中,而不是将其作为每个调用的一部分传递:

>>> from collections import defaultdict

>>> tries_dict = defaultdict(lambda: 'next',

... {1:'first', 2:'second', 3:'third', 4:'fourth', ub_tries:'last'})

>>> tries_dict

defaultdict( at 0x10272fef0>, {8: 'last', 1: 'first', 2: 'second', 3: 'third', 4: 'fourth'})

>>> tries_dict[5]

'next'

>>> tries_dict

defaultdict( at 0x10272fef0>, {1: 'first', 2: 'second', 3: 'third', 4: 'fourth', 5: 'next', 8: 'last'})

但是,请注意,这会在您第一次请求时永久创建每个元素 – 并且您必须创建一个返回默认值的函数.这使得它更适用于您要更新值的情况,并且只需要将默认值作为起点.

python字典有什么用_在Python中使用范围作为字典键,我有什么选...相关推荐

  1. python字典的存储结构_解决python字典结构内存暴涨问题

    背景:当读取一个key value数据的时候,python的字典结构会造成内存使用扩10倍左右,无可容忍.此文解决这个问题 数据:word2vec训练的结果,word对应400维的词向量.词表共1.6 ...

  2. 下列选项中不属于python循环语句的是哪一项_下列选项中,不属于字典操作的方法是哪一项?_学小易找答案...

    [简答题]字符串有哪几种表现形式? [简答题]简述Python程序的执行过程. [单选题]Python 语句x='char';y=2,print(x+y)输出的结果是哪一项?() [编程题]输入三角形 ...

  3. python 列表嵌套字典 添加修改删除_【Python】列表嵌套字典修改字典里面的一个值却把全部的值都修改了。...

    具体问题就是:当我往空列表里面添加字典,需要修改其中的一个键的值的时候,出现把其他同类的值也修改了. 下面就是出现问题的代码: aliens = [] new_alien = {"color ...

  4. python代数式的表达方式_关于python字典类型最疯狂的表达方式

    一个Python字典表达式谜题 让我们探究一下下面这个晦涩的python字典表达式,以找出在python解释器的中未知的内部到底发生了什么. # 一个python谜题:这是一个秘密 # 这个表达式计算 ...

  5. python用字典存储学生成绩_掌握Python字典的12个例子

    作者|Soner Yıldırım 编译|VK 来源|Towards Data Science 数据结构是任何编程语言的关键部分.为了创建健壮且性能良好的产品,必须非常了解数据结构. 在这篇文章中,我 ...

  6. python统计单词出现次数_用python统计单词出现频率

    用python的字典数据结构可以很方便地用来统计一篇文章的每个单词出现的频率.在文本相似度计算中,就经常需要用到一个单词在文章中的出现频率,进而可以根据两篇文章共有单词在相应文章中的频率比较,来计算相 ...

  7. python基础知心得总结_【python】基础学习心得总结(一)

    本文将简单阐述一些基本的python知识点,大多是本人在学习过程中的心得体会.简单常用的编程概念和思想将不再描述.若有理解错误,还望指正. 一.python运行,调试 python和相关软件可以在官网 ...

  8. python文本结构化处理_在Python中标记非结构化文本数据

    python文本结构化处理 Labelled data has been a crucial demand for supervised machine learning leading to a n ...

  9. python 二维列表从小到大_给Python开发者准备的110道面试题

    信息量非常大!这是给Python开发者准备的110道笔试面试题,我只把问题列出来了,答案见文末,建议每道题都要认真刷一遍,有些题可以尝试用多种方式来解答,甚至做延伸学习,说真的,很多题都可以单独拎出来 ...

  10. python做审计底稿视频_最新Python教学视频,每天自学俩小时,让你offer拿到手软...

    2020最新Python零基础到精通资料教材,干货分享,新基础Python教材,看这里,这里有你想要的所有资源哦,最强笔记,教你怎么入门提升!让你对自己更加有信心,重点是资料都是免费的,免费!!! 如 ...

最新文章

  1. PCL深度图像(1)
  2. Warning: Each child in a list should have a unique “key“ prop.
  3. Matlab中只运行m文件中部分程序的方法
  4. redis-sentinel 主从复制高可用
  5. PHP pear安装
  6. 山东专升本access知识点_全国各省份每年的专升本考试大纲啥时候公布?考纲公布之前你该做什么?...
  7. android系统签名app自动更新,【Android 进阶】Apk 使用系统签名
  8. 带你玩转Logview: MaxCompute Logview参数详解和问题排查
  9. 原生JS替代jQuery的各种方法汇总
  10. 远景论坛黑苹果专区_黑苹果扯犊子篇
  11. js获取url一级域名的方法
  12. 分了很多节的word文档,使用尾注插入的参考文献,最后怎么在参考文献之后加入致谢?
  13. 机器学习:数据归一化(Scaler)
  14. 鸡和兔关在一个笼子里,鸡有2只脚,兔有4只脚,螃蟹 ;递归
  15. C++错误:C4996
  16. char 与 unsign char的转换
  17. Element-UI组件之其他Others
  18. abp .net core linux,Abp vNext框架 从空项目开始 使用ASP.NET Core Web Application-笔记
  19. 新年巨献2021新版QQ选号网源码
  20. 【单片机】辉光管时钟系列<二>LCD液晶显示

热门文章

  1. 【大话数据结构算法】冒泡排序
  2. 大话设计模式—建造者模式
  3. 学Excel函数公式,怎能不会这个组合套路?
  4. 应用分类练手项目计划
  5. mysql学习-初识mysql
  6. Nodejs【单机】多进程模式集群
  7. HBase+Phoenix整合入门--集群搭建
  8. Nginx 模块开发(1)—— 一个稍稍能说明问题模块开发 Step By Step 过程
  9. Cookie利用神器:CookieHacker
  10. 自动化测试工具selenium使用介绍