一、字典

key -->value 储存大量数据,而且是关系型数据,查询速度非常快

  数据类型分类:

    可变数据类型:list , dict, set

    不可变的数据类型:int , bool, str, tuple

    字典的键:不可变数据类型

    字典的值:任意数据类型

   hash哈希

    可变数据类型(不可哈希):list , dict,set

    不可变数据类型(可哈希):int , bool, str ,tuple

  增

    第一种 有则覆盖,没有就添加

dic = {"name":"jin",
"age":18,
"sex":"male"
}
dic['hobby'] = 'girl'
print(dic)
dic['name'] = 'alex'
print(dic)
dic['hobby'] = 'love'
print(dic)

    第二种 setdefault,无则添加,有则不变

dic = {"name":"jin",
"age":18,
"sex":"male"
}
dic.setdefault('work')
print(dic)
dic.setdefault('work','ps')
print(dic)
dic.setdefault('name')
print(dic)

  删

  

  pop有返回值(可以自己设置返回值) 

dic = {"name":"jin",
"age":18,
"sex":"male"
}
print(dic.pop('age'))
print(dic.pop('name'))
print(dic.pop('hahah','None'))
print(dic.pop('name','没有此关键值'))#添加返回值为‘没有此关键字’
没有设置返回值,并且也没有该元素,  会报错 

   clear清空

dic = {"name":"jin",
"age":18,
"sex":"male"
}
dic.clear()
print(dic)

   del删除

dic = {"name":"jin",
"age":18,
"sex":"male"
} del dic
del dic['name']
print(dic)
del dic['work']
print(dic)
print(dic.popitem())#随机删除一对key--》value
print(dic)

  查

dic = {"name":"jin",
"age":18,
"sex":"male"
} print(dic['name'])
print(dic['work'])#没有,报错
print(dic['age'])
#print(dic('hobby1')) print(dic.get('name'))
print(dic.get('name1','没有此贱'))#默认返回none,可以自己设置返回值
print(dic.get('name1'))

  其他方法 key()    values()  items()

print(dic.keys())
print(dic.keys(),type(dic.keys()))
for i in dic.keys():#打印键
print(i) for i in dic:#打印键
print(i)

  

print(dic.values())
print(dic.values(),type(dic.values)) for i in dic.values():#将键值转化成列表,然后逐个打印
print(i)

  

print(dic.items())

for i in dic.items():#将键和值转化成列表中成对的元祖
print(i)
for k,v in dic.items():
print (k,v)

  分别赋值

 

 a, b = 2,3
print(a,b) a,b = (2,3)
print (a,b) a,b = [2,3]
print (a,b) a= 5
b = 4 a,b = b,a
print(a,b)

 字典的嵌套

  

dic = {'name_list':['张三','lisi','隔壁王'],
'dic2':{'name':'太白','age':12}}
# 1 ,给列表追加一个元素:'旺旺'
dic['name_list'].append('汪汪')
print(dic)
# ,2,给列表lisi全部大写
dic['name_list'][1] = dic['name_list'][1].upper()
print(dic)
# 3,给dic2 对应的字典添加一个键值对:hobby:girl.
dic ['dic2']['sex'] = 'girl'
print (dic)

 fromkey

对于可变的列表,内存地址指向的是列表,所以列表里面的内容改变,并不会引起对应值的改变

dic = dict.fromkeys(['barry','alex',],[])

print(dic)#{'barry': [], 'alex': []}

dic['barry'].append(666)

print(dic)#{'barry': [666], 'alex': [666]}

对于字符串,整型,指针直接指向的是元素的地址,所以元素改变,所对应的也会改变

dic = dict.fromkeys(['barry','alex'],66)

print(dic)#{'barry': 66, 'alex': 66}
dic['alex']= 1
print(dic)#{'barry': 66, 'alex': 1}

  

  

python:数据类型dict的更多相关文章

  1. Python数据类型的内置函数之tuple(元组),dict(字典),set(集合)

    Python数据类型内置函数 - str(字符串) - list(列表) - tuple(元组) - dict(字典) - set(收集) tuple(元组)的操作 - (count)统计元组中元素出 ...

  2. Python 数据类型及其用法

    本文总结一下Python中用到的各种数据类型,以及如何使用可以使得我们的代码变得简洁. 基本结构 我们首先要看的是几乎任何语言都具有的数据类型,包括字符串.整型.浮点型以及布尔类型.这些基本数据类型组 ...

  3. day01-day04总结- Python 数据类型及其用法

    Python 数据类型及其用法: 本文总结一下Python中用到的各种数据类型,以及如何使用可以使得我们的代码变得简洁. 基本结构 我们首先要看的是几乎任何语言都具有的数据类型,包括字符串.整型.浮点 ...

  4. Python数据类型及其方法详解

    Python数据类型及其方法详解 我们在学习编程语言的时候,都会遇到数据类型,这种看着很基础也不显眼的东西,却是很重要,本文介绍了python的数据类型,并就每种数据类型的方法作出了详细的描述,可供知 ...

  5. Python学习笔记(五)--Python数据类型-数字及字符串

    Python数据类型:123和'123'一样吗?>>> 123=='123'False>>> type(123)<type 'int'>>> ...

  6. python数据类型之元组、字典、集合

    python数据类型元组.字典.集合 元组 python的元组与列表类似,不同的是元组是不可变的数据类型.元组使用小括号,列表使用方括号.当元组里只有一个元素是必须要加逗号: >>> ...

  7. 1 Python数据类型--

    常见的Python数据类型: (1)数值类型:就是平时处理的数字(整数.浮点数) (2)序列类型:有一系列的对象并排或者排列的情况.如字符串(str),列表(list),元组(tuple)等 (3)集 ...

  8. Python数据类型(python3)

    Python数据类型(python3) 基础数据类型 整型 <class 'int'> 带符号的,根据机器字长32位和64位表示的范围不相同,分别是: -2^31 - 2^31-1 和 - ...

  9. Python数据类型的内置函数之list(列表)

    Python数据类型内置函数 - str(字符串) - list(列表) - tuple(元组) - dict(字典) - set(收集) list(列表)的操作 - (append)在列表最后追加指 ...

  10. Python数据类型的内置函数之str(字符串)

    Python数据类型内置函数 - str(字符串) - list(列表) - tuple(元组) - dict(字典) - set(收集) str(字符串)的一些操作 - 字符串相连方法 # 字符串的 ...

随机推荐

  1. oracle中日期类型 to_date 和to_timestamp什么区别啊?

    1.to_date() 和to_timestamp()区别 由于oracle中date类型只支持到秒,不支持到毫秒,所以to_date()不能取到毫秒.如果要取到毫秒,oracle 9i以上版本,可以 ...

  2. 弹性布局(Flex布局)整理

    一.  弹性布局 一个好的网站都有让用户看上去很舒服的布局,一个网站的布局也会或多或少影响到它的浏览量,看完阮大神的博客,就想把弹性布局整理一下. 在平时的我们常用的布局类型有以下几种: 1.浮动+定 ...

  3. JAVA将汉字转换为全拼以及返回中文的首字母,将字符串转移为ASCII码

    import net.sourceforge.pinyin4j.PinyinHelper;import net.sourceforge.pinyin4j.format.HanyuPinyinCaseT ...

  4. C# ComboBoxTree控件

    这个控件,百度.codeproject等,能查到更好的解答和代码.写这个,是因为,我在3个小时内,没有看懂接手项目,原有的TreeCombox自定义代码逻辑.而我觉得很有必要改动它.因为新弄得网页端很 ...

  5. sklearn.model_selection.StratifiedShuffleSplit

    sklearn.model_selection.StratifiedShuffleSplit

  6. es6学习日记1

    1.let和const ES6新增了let命令,用来声明变量,用法类似于var ,但是声明的变量只在let命令所在代码块内有效. 例如: { let a = 10; var b = 1; } a // ...

  7. Python全栈之路----函数进阶----闭包

    关于闭包,即函数定义和函数表达式位于另一个函数的函数体内(嵌套函数).而且,这些内部函数可以访问它们所在的外部函数中声明的所有局部变量.参数.当其中一个这样的内部函数在包含它们之外被调用时,就会形成闭 ...

  8. <a>链接添加样式问题

    <a>链接是内联元素,必须设置成块元素block,才能有 width 和 height,不过你可以又定义display:block再定义成 display:inline 这样可以避免在IE ...

  9. Linux监控平台、安装zabbix、修改zabbix的admin密码

    1.Linux监控平台 2. zabbix监控 3.zabbix的安装下载:wget -c https://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbi ...

  10. JavaEE思维导图