Python基础(二)之数据类型和运算(7)——字典

字典

字典在某些语言中可能称为 联合内存 ( associative memories )或 联合数组 ( associative arrays )。序列是以连续的整数为索引,与此不同的是,字典以 关键字 为索引,关键字可以是任意不可变类型,通常用字符串或数值。如果元组中只包含字符串和数字,它可以做为关键字,如果它直接或间接的包含了可变对象,就不能当做关键字。不能用列表做关键字,因为列表可以用索引、切割或者 append()extend() 等方法改变。

理解字典的最佳方式是把它看做无序的键: 值对 (key:value 对)集合,键必须是互不相同的(在同一个字典之内)。

1 info = {
2     ‘stu1101‘: "TengLan Wu",
3     ‘stu1102‘: "LongZe Luola",
4     ‘stu1103‘: "XiaoZe Maliya",
5 }

字典的特性:

  • dict是无序的
  • key必须是唯一的,so 天生去重

基本功能

查找value:

#索引
print( info[‘stu1101‘] )  #key中存在时显示value,如果key不存在则报错>>>TengLan Wuprint(info.get(‘stu1102‘))   #常用这个,key不存在时返回None,而不是报错>>>TengLan Wu

print(info.get(‘stu1106‘))   >>>None

查找key:

>>> "stu1102" in info #标准用法
True

修改:

#修改
info[‘stu1102‘] = ‘Alex li‘
print(info)

>>>{‘stu1101‘: ‘TengLan Wu‘, ‘stu1102‘: ‘Alex li‘, ‘stu1103‘: ‘XiaoZe Maliya‘}

增加:

# 增加
info[‘stu1104‘] = "Jack Wang"
print(info)

>>>{‘stu1101‘: ‘TengLan Wu‘, ‘stu1102‘: ‘LongZe Luola‘, ‘stu1103‘: ‘XiaoZe Maliya‘, ‘stu1104‘: ‘Jack Wang‘}

 删除:

#删除
del info[‘stu1101‘]
print(info)

>>>{‘stu1102‘: ‘LongZe Luola‘, ‘stu1103‘: ‘XiaoZe Maliya‘}

info.pop(‘stu1102‘)    #和del 相同
print(info)

>>>{‘stu1101‘: ‘TengLan Wu‘, ‘stu1103‘: ‘XiaoZe Maliya‘}

info.popitem()        #随机删除
print(info)

>>>{‘stu1101‘: ‘TengLan Wu‘, ‘stu1102‘: ‘LongZe Luola‘}

其他功能

字典生成列表

#key列表
ret = info.keys()
print(ret)
#value列表
ret = info.values()
print(ret)
#key-value列表
ret = info.items()
print(ret)

>>>
dict_keys([‘stu1101‘, ‘stu1102‘, ‘stu1103‘])
dict_values([‘TengLan Wu‘, ‘LongZe Luola‘, ‘XiaoZe Maliya‘])
dict_items([(‘stu1101‘, ‘TengLan Wu‘), (‘stu1102‘, ‘LongZe Luola‘), (‘stu1103‘, ‘XiaoZe Maliya‘)])

 其他增加、修改字典的方法

#setdefault

>>> info.setdefault("stu1106","Alex")     #没有1106,就创建新的Key
‘Alex‘
>>> info
{‘stu1102‘: ‘LongZe Luola‘, ‘stu1103‘: ‘XiaoZe Maliya‘, ‘stu1106‘: ‘Alex‘}
>>> info.setdefault("stu1102","龙泽萝拉")   #存在1102,就不再创建,也不更改原有值
‘LongZe Luola‘
>>> info
{‘stu1102‘: ‘LongZe Luola‘, ‘stu1103‘: ‘XiaoZe Maliya‘, ‘stu1106‘: ‘Alex‘}
#update
>>> info
{‘stu1102‘: ‘LongZe Luola‘, ‘stu1103‘: ‘XiaoZe Maliya‘, ‘stu1106‘: ‘Alex‘}
>>> b = {1:2,3:4, "stu1102":"龙泽萝拉"}
>>> info.update(b)
>>> info
{‘stu1102‘: ‘龙泽萝拉‘, 1: 2, 3: 4, ‘stu1103‘: ‘XiaoZe Maliya‘, ‘stu1106‘: ‘Alex‘}#存在的key,更新数据:不存在的Key,创建新数据
#通过一个列表生成默认dict,有个没办法解释的坑,少用吧这个
c = dict.fromkeys([1,2,3],‘testd‘)
print(c)
>>>{1: ‘testd‘, 2: ‘testd‘, 3: ‘testd‘}

c[1] = "yang"
print(c)
>>>{1: ‘yang‘, 2: ‘testd‘, 3: ‘testd‘}

d = dict.fromkeys([4,5,6],[1,{"name":"alex"},55])
print(d)
>>>{4: [1, {‘name‘: ‘alex‘}, 55], 5: [1, {‘name‘: ‘alex‘}, 55], 6: [1, {‘name‘: ‘alex‘}, 55]}

d[4][1][‘name‘] = "Yang"    #坑在此,浅拷贝
print(d)
>>>{4: [1, {‘name‘: ‘Yang‘}, 55], 5: [1, {‘name‘: ‘Yang‘}, 55], 6: [1, {‘name‘: ‘Yang‘}, 55]}

字典的循环

#循环的是keyfor i in info:
    print(i)

>>>      #默认为输出KEY
stu1101
stu1102
stu1103

#输出value,建议使用
for i in info:
    print(i,info[i])

>>>
stu1101 TengLan Wu
stu1102 LongZe Luola
stu1103 XiaoZe Maliya

#另一个输出value的方法,生成列表运行会慢
for k,v in info.items():
    print(k,v)

>>>
stu1101 TengLan Wu
stu1102 LongZe Luola
stu1103 XiaoZe Maliya

原文地址:https://www.cnblogs.com/yz9110/p/8203689.html

时间: 2024-08-04 01:45:30

Python基础(二)之数据类型和运算(7)——字典的相关文章

Python基础之基本数据类型一《数字与字符串》

一.运算符 结果是值 算数运算                            a = 10 * 10                  赋值运算                            a = a + 1    a+=1 结果是布尔值 比较运算                            a = 1 > 5                  逻辑运算                            a = 1>6 or 1==1              

Python基础二:pycharm的安装及简单使用,while循环,格式化输出,运算符, 编码的初识,git

Python基础二: pycharm的安装及简单使用,while循环,格式化输出,运算符, 编码的初识,git 1.pycharm的安装及简单使用 Tab / Shift + Tab 缩进.不缩进当前行 (先选中代码) Shift + 滚轮 放大缩小代码 Ctrl + ? 注释.解注(先选中代码) Ctrl + d 复制上一行代码 Ctrl + z 撤销 Ctrl + Shift + F10 RUN Ctrl + 左键---->点击 int,str 等可查看源码 2.while 循环(重点) w

Python基础二--基本控制语句

基本接触每一种语言,都需要做的:1.print 一个"Hello world!" 2.了解基本的数据类型 3.学习控制语句. 当我们学习控制语句,一般都离不开if,for ,while,switch(case).本文就做一个简单的介绍python的基本控制语句,其中我们用if while来做一个经典的"猜数字游戏",if for来做一个"输出完美数". 在此之前,对于一些没用过python的同学而熟悉c/c++等用{}来做块的要注意了,pytho

python基础教程_学习笔记6:字典

字典 映射(mapping),一种可通过名字引用值得数据结构. 字典是python中唯一内建的映射类型. 字典中的值没有特殊的顺序,但都存储在一个特定的键(key)里.键可以是数字.字符串甚至是元组. 字典的使用 某些情况下,字典比列表更加适用,比如: 表征游戏棋盘的状态,每个键都是由坐标值组成的元组: 存储文件修改数,用文件名作为键: 数字电话/地址簿: 假如有一个人名列表如下: >>>names=['Alice','Beth','Cecil','Dee-Dee','Earl'] 如果

二.Python基础语法和数据类型

Python第二节 基础语法和数据类型 Python编码 python3默认情况下源码文件以UTF-8编码, 字符串均为unicode字符串.同时也可以通过# -*- coding: cp-1252 -*-这样类似的代码进行源码编码的变更. Python标志符 第一个字符必须是字母或者下划线"_", 绝对不能是数字或其他特殊字符. 其他字符: 任意什么都行 可以使用中文做变量名 标识符对大小写敏感 Python关键字 关键字禁止被用作任何标识符名称. 可通过标准库的keyword模块查

进击的Python【第二章】:Python基础(二)

Python基础(二) 本章内容 数据类型 数据运算 列表与元组的基本操作 字典的基本操作 字符编码与转码 模块初探 练习:购物车程序 一.数据类型 Python有五个标准的数据类型: Numbers(数字) String(字符串) List(列表) Tuple(元组) Dictionary(字典) 1. Number(数字) number类型用来专门存储数字数据,他们是不可改变的数据类型,这意味着改变数字数据类型会分配一个新的对象 Python支持四种不同的数字类型: int(有符号整型) l

python笔记二(数据类型和变量、字符串和编码)

一.数据类型 python可以直接处理的数据类型有:整数.浮点数.字符串.布尔值.空值. 整数 浮点数 字符串:双引号内嵌套单引号,可以输出 i'm ok. 也可以用\来实现,\n 换行 \t table 多行字符串用  ''' ''' 布尔值: 可以对布尔值进行与或非运算/ 与and 或or 非not 空值 二.变量 a = 1/ a = "nadech"    与java不同,python在声明一个变量的时候不用指定变量的类型,直接赋值就可以了 在 执行a =1 的时候,pytho

python基础(9):基本数据类型四(set集合)、基础数据类型补充、深浅拷贝

1. 基础数据类型补充 li = ["李嘉诚", "麻花藤", "?海峰", "刘嘉玲"] s = "_".join(li) print(s) li = "?花?闺?" s = "_".join(li) print(s) 列表: 循环删除列表中的每?个元素 li = [11, 22, 33, 44] for e in li: li.remove(e) print(li

python学习-day2:python基础二

主要内容: 变量存储 字符串的格式化 位运算 输入密文显示 if...else 三元运算 列表 字典 变量 name2直接指向内存数据,当name改变,之前存的数据值和位置不变,新开辟内存空间存放新数据. 字符串的格式化 字符串是 %s;整数 %d;浮点数%f:%r是原始数据,不转义 位运算 输入密文显示 引入getpass,import gatpass 使用:pwd = getpass.gatpass("passwod:") pycharm不支持运行 continue是跳出本次循环,

python基础(文件输入/输出 内建类型 字典操作使用方法)

本文主要介绍了python基础入门,包括文件输入/输出.内建类型.字典操作等使用方法 一.变量和表达式 代码如下: >>> 1 + 1 2>>> print 'hello world' hello world>>> x = 1               >>> y = 2>>> x + y3 Python是强类型语言,无法根据上下文自动解析转换成合适的类型. Python是一种动态语言,在程序运行过程中,同一个变量