python字典中的值只能是字符串类型_python字典key不能是可以是啥类型

python中字典的key不能是可变类型。字典可存储任意类型对象,其中值可以取任何数据类型,但键必须是不可变的,如字符串、数字或元组。语法格式:【d = {key1 : value1, key2 : value2}】。

字典是另一种可变容器模型,且可存储任意类型对象。

字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:

d = {key1 : value1, key2 : value2 }

键必须是唯一的,但值则不必。

值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。

代码实现:

dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}

内容扩展:

Python中字典的key都可以是什么?

答:一个对象能不能作为字典的key,就取决于其有没有__hash__方法。所以所有python自带类型中,除了list、dict、set和内部至少带有上述三种类型之一的tuple之外,其余的对象都能当key。

比如数值/字符串/完全不可变的元祖/函数(内建或自定义)/类(内建或自定义)/方法/包等等你能拿出手的,不过有的实际意义不高。还有数值型要注意,因为两个不同的相等数字可以有相同的哈希值,比如1和1.0。

解释:

代码版本:3.6.3;文档版本:3.6.6

Unlike sequences, which are indexed by a range of numbers, dictionaries are indexed by keys, which can be any immutable type; strings and numbers can always be keys. Tuples can be used as keys if they contain only strings, numbers, or tuples; if a tuple contains any mutable object either directly or indirectly, it cannot be used as a key. You can't use lists as keys, since lists can be modified in place using index assignments, slice assignments, or methods like append()and extend().

字典的键可以是任意不可变类型,需要注意的是tuple元组作为键时,其中不能以任何方式包含可变对象。

到此这篇关于python字典key不能是可以是啥类型的文章就介绍到这了,更多相关python字典key不能是什么类型内容请搜索python博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持python博客!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/575002.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

conda指定路径_导出不带前缀变量的conda环境,该变量显示executab的本地路径

为了在我的团队中提高可重复性,我在新创建的存储库中导出了一个conda环境文件,该存储库运行conda env export > environment.yml。在我的想法是让我的同事下载repo并运行conda env create -f environment.yml并准备好使用代码。在然而,我的…

未定义函数或变量_变量提升:JavaScript是顺序执行,为什么变量在定义之前执行不会报错而是报Underfined...

showName() console.log(myname) var myname hhh function showName() {console.log(函数showName被执行); }按照JavaScript 是按顺序执行的逻辑来理解的话,当执行到第 1 行的时候,由于函数 showName 还没有定义,所以执行应该会报错&#xf…

html背景图片大小控制

背景图尺寸(数值表示方式): #background-size{ background-size:200px 100px; } 背景图尺寸(百分比表示方式): #background-size{ background-size:30% 60%; } 背景图尺寸(等比扩展图片来填满元素,即cover值): #background-size{ …

java break递归_【Java】递归总结

摘要:大师 L. Peter Deutsch 说过:To Iterate is Human, to Recurse, Divine.中文译为:人理解迭代,神理解递归。毋庸置疑地,递归确实是一个奇妙的思维方式。对一些简单的递归问题,我们总是惊叹于递归描述问…

python3 urllib3文档_python urllib3

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里技术人对外发布原创技术内容的最大平台&…

[翻译] RDVTabBarController

RDVTabBarController https://github.com/robbdimitrov/RDVTabBarController 效果: Supports iPad and iPhone 支持iPad与iPhoneSupports landscape and portrait orientations 支持横竖屏切换动画Can be used inside UINavigationController 可以用在UINavigationC…

C# 通过ImportNode AppendChild方法合并XmlDocument,XML转为DataTable

C# 通过ImportNode AppendChild方法合并XmlDocument,XML转为DataTable var doc1 new XmlDocument(); var doc2 new XmlDocument();XmlNode root1 doc1.DocumentElement;doc2.Load(new XmlNodeReader(myXmlNode2));foreach (XmlNode node in doc2.DocumentElement…

内存位置访问无效 midas.dll_java并发之内存模型

作者:killianxu来源:https://www.cnblogs.com/killianxu/p/11665903.htmljava内存模型知识导图一 并发问题及含义并发编程存在原子性、可见性、有序性问题。原子性即一系列操作要么都执行,要么都不执行。 可见性,一个线程对共享变量的修改&am…

java 字符串指定编码输出_java对字符的编码处理

在java应用软件中,会有多处涉及到字符集编码,有些地方需要进行正确的设置,有些地方需要进行一定程度的处理。1. getBytes(charset)这是java字符串处理的一个标准函数,其作用是将字符串所表示的字符按照charset编码,并以…

python访问数据库如何解决高并发_使用 Python 和 Oracle 数据库实现高并发性

随着趋势发展的核心转向更多而不是更快发展,最大限度地提高并发性的重要性日益凸显。并发性使得编程模式发生了新的转变,可以编写异步代码,从而将多个任务分散到一组线程或进程中并行工作。如果您不是编程新手并且很熟悉 C 或 C,您…

过长内容分成了多次发送 问题 LengthFieldBasedFrameDecoder使用

这个问题比较常见,在高并发大数据传输时数据分包接收会乱 在org.jboss.netty.handler.codec.frame包中,有LengthFieldBasedFrameDecoder类用来解析带有长度属性的包,只要我们在传输协议中加入包的总长度就行了(也许有更好的方法&a…

java为什么需要枚举_java – 什么是枚举,为什么它们有用?

当变量(特别是方法参数)只能从一组可能的值中取出一个时,应该总是使用枚举。示例将是类型常量(合同状态:“永久”,“临时”,“学徒”)或标志(“立即执行”,“延迟执行”)。如果使用枚举而不是整数(或字符串代码)&#…

python args kw_Python基础-参数魔法,*args,**kwags

最近在带着新成员一起学习《Python基础教程》这本书,看到参数魔法的时候突然感觉好多术语真的不知道呀~Python参数:位置参数,关键字参数经常看Python我们肯定经常看见,下面类似这样的代码def add(x,y):return xy# 1add(1,2)# 2add(x1,y2)上面的两段代码结…

程序一旦发觉写得不理想,那就得重构它

早上有写一篇《设计模式--建造者(Builder)模式》http://www.cnblogs.com/insus/p/4179620.html。是在ASP.NET环境中,应用与演示设计模式(Builder)。现在Insus.NET从博文中最后的下载链接下载取源程序,它是有写得不够理想,现在重构它。问题点&…

java爬小说_java爬虫实战开发小说网站

用Java做一个自己的小说网站共10课,教程完结,带完整依赖jar。【课程内容】第一课更新:本教程要求:有一定Java开发基础有一点网页开发基础开发环境:JDK1.7及以上MavenEclipseTomcat7及以上第二课更新:1.为原…

python画多边形_python – 使用matplotlib更有效地绘制多边形

您可以考虑创建多边形的集合而不是单个多边形。举个例子:import numpy as npimport matplotlib.pyplot as pltfrom matplotlib.collections import PolyCollectionimport matplotlib as mpl# Generate data. In this case, well make a bunch of center-points and …

python小程序

#!/bin/env python# -*- coding: UTF-8 -*-import time import datetimeday_list list() day_dict dict()def day_constancy_check():检查日期是否连续, 小时是否全部存在Args:Returns:day_list.sort()first_day for i in range(len(day_list)):if first_day ! :input_day …

java post 图片上传_java 发送 post 请求上传图片

构造http header时,设置content-length为内容部分字节数,但是总是无效。通过wireshark抓到的包和设置的content-length不符合。private void initConnection() throws Exception {conn (HttpURLConnection) this.url.openConnection();conn.setDoOutput…

ASP.NET MVC4中用 BundleCollection

来源&#xff1a;http://www.cnblogs.com/madyina/p/3702314.html ASP.NET MVC4中对JS和CSS的引用又做了一次变化&#xff0c;在MVC3中我们这样引用资源文件&#xff1a; <link href"Url.Content("~/Content/Site.css")" rel"stylesheet" typ…