python D5 字典

# 基本数据类型 :dict# 1、字典的基本介绍# 字典是python中唯一的一个映射类型,他是以{}括起来的键值对组成,在dict中key是# 唯一的。在保存的时候,根据key来计算出一个内存地址,然后将key-value保存在这个地址中。# 这种算法成为hash算法,所以,切记,在dict存储的key-value中的key必须是可hash的。# (key是可以hash的,可以改变不是可哈希的。)# 已知的可哈希(不可变)的数据类型:str(字符串)、int(数字)、tuple(元组)、bool(布尔)# 不可哈希的(可变的):list(列表)、dict(字典)、set(集合)# 语法:{"key1":"name1","key2":"name2"...}# 注意:dict中key值需为可哈希的(不可变),value没有要求、可以保存任意类型的数据# dict中数据保存是无需的不连续的,所以不能用切片工作,他只能通过key来获取dict中的数据

# 二、字典增删改查和其他操作# 1、增加:# d={"name": "张南北", "age":"16"}# d["性别"] = "男"# d["name"] = "Daniel" # 如果字典中以有key增加至会覆盖原来的value# print(d)

# d = {"name": "张南北", "age": "16"}# d.setdefault("gender")# print(d) # {‘name‘: ‘张南北‘, ‘age‘: ‘16‘, ‘gender‘: None}# 用setdefault添加时当只给出key是自动添加空值(None)# d.setdefault("gender", "男")# print(d)# d.setdefault("name", "Jack")# print(d)  # {‘name‘: ‘张南北‘, ‘age‘: ‘16‘}# 当使用d.setdefault 添加时dict中原本有相同的key值则不会添加# d1 = d.setdefault("name", "Jack")# print(d, d1)  #{‘name‘: ‘张南北‘, ‘age‘: ‘16‘} 张南北# d.setdefault("x","y") 增加时如果原dict中有对应的key则print(d.setdefault())为原来dict中key对应的value

# 2、删除:pop()、popitem()、clear()、del dic[]# pop(key):key对应的键值删除,当key值在原字典中找不到则会报错# d = {"name": "张南北", "age": "16"}# d.pop("name")# print(d)# d.pop("gender") #KeyError: ‘gender‘

# popitem:随机删除字典中一对键值(字典里面的元素排序是无序(最底层的key哈希值随机排列),popitem()删除的是无序的,但在python3.5删除看着是最后一个,只是计算机在中间层做的处理)# d = {"name": "张南北", "age": "16", "gender": "men"}# d.popitem()# print(d)

# clear:清空字典但字典最底层存储码还在# d = {"name": "张南北", "age": "16", "gender": "men"}# d.clear()# print(d)  #{}

# del d:删除 里面所有都删除(比clear更彻底)# del d# print(d)  # 报错  NameError: name ‘d‘ is not defined# del d["name"]# print(d)

# 3、修改# d = {"name": "张南北", "age": "16", "gender": "men"}# d["age"] = "18"# print(d)  # 相当于新增(覆盖)# d2 = {"hobby": "play_game", "name": "Deniel"}# d.update(d2)# print(d)  # {‘name‘: ‘Deniel‘, ‘age‘: ‘16‘, ‘gender‘: ‘men‘, ‘hobby‘: ‘play_game‘}# 把d2中的内容更新到d中. 如果key重名. 则修改替换. 如果不存在key, 则新增.

# 4、查询:查询一般用key来查找具体的数据# 有两种方式查找:d["xxx"]、d.get("xxx")# d = {"name": "张南北", "age": "16", "gender": "men"}# print(d["name"])# print(d["hobby"])  #KeyError: ‘hobby‘# 当用此种方式查找时、字典中没有对应的key则会报错# print(d.get("age"))# print(d.get("hobby"))  # None# 此种方法查找当key时,字典中没有回输出None

# 5、其他操作:# keys、values、items# keys:找出字典中所有key的值以类似列表的形式保存可以迭代# d = {"name": "张南北", "age": "16", "gender": "men"}# print(d.keys())  #  dict_keys([‘name‘, ‘age‘, ‘gender‘])  类似列表,但是列表可以迭代# for c in d.keys():#     print(c)# values:找出字典中所有value的值以类似列表的形式保存可以迭代# items:找出字典中所有的键对# print(d.items())   # dict_items([(‘name‘, ‘张南北‘), (‘age‘, ‘16‘), (‘gender‘, ‘men‘)])# for key, value in d.items():#     print(key, value)# 输出结果:name 张南北#           age 16#           gender men
# for c in d:#     print(c)# 结果:# name# age# gender 如果直接循环打印字典输出结果只有key

# 6、元组的解包# a, b = 1, 2# print(a, b)  #1 2# 将a,b的值互换# b, a = 1, 2# print(a, b)

# 三、字典的嵌套# 字典的嵌套 :一层层去找就ok# dic1 = {#  "name": "汪峰",#  "age": 18,#  "wife": {#  "name": ‘章?怡‘,#  "age": 28#  },#  "children": [‘第?个?孩?‘, ‘第?个?孩?‘],#  "desc": ‘峰哥不会告我吧. 没关系. 我想上头条的‘# }# print(dic1["name"]) # 这样查找当嵌套字典中有多个重复的key输出第一层的key对应value值# print(dic1.get("wife").get("name"))   # 章?怡 # 优选第二种方法

原文地址:https://www.cnblogs.com/z520h123/p/9837436.html

时间: 2024-10-07 18:00:11

python D5 字典的相关文章

python元字典

Python元字典 字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型.列表是有序的对象结合,字典是无序的对象集合. 两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取. 字典用"{ }"标识.字典由索引(key)和它对应的值value组成. #!/usr/bin/python # -*- coding: UTF-8 -*- dict = {} dict['one'] = "This is one" dict[2]

Python 之字典与集合

进入python的字典与集合的学习. 先回顾下集合. 在python中,集合用set表示.花括号与set()可以用来创建集合. 还是先创建一个空的集合 不能用s={}来创建一个集合,创建一个空的集合使用set(). 集合是无序的,不重复的,所以在创建集合的时候重复的元素会被去掉. 集合的基本运算: 交    & 并    | 差    - 对称差 ^ 举个例子: 设集合s1={1,2,3,4},集合s2={2,3,5} 则: >>> s1={1,2,3,4} >>&g

python学习     字典

Python学习   字典 1)字典的了解 1.    字典是python中唯一的映射类型(哈希表) 2.    字典对象时可变的,但是字典的键必须使用不可变对象,并且在一个字典中可以使用不同的类型的键值. 3.    keys()或者是values()返回列表中或者值列表 4.    items()返回包含键值对应的元祖 1)  定义字典的方法和使用方法 1.字典名={key:values,key1:values1} 2.取值时: 字典名[key](取出与key相对应的values) 3.可以

python 遍历字典

dict={"a":"apple","b":"banana","o":"orange"} print "##########dict######################" for i in dict: print "dict[%s]=" % i,dict[i] print "###########items############

python实战-字典使用

python实战-字典使用 使用字典统计字符出现次数 #! /usr/bin/env python #coding:utf-8 #定义一个函数,接收字符串,统计出每个字符的出现次数 #实现思路:字典实现,看字符是否在字典中,不在则计入字典,否则+1. def histogram(str): dic = dict() for c in str: if c not in dic: dic[c] = 1 #add else: dic[c]+=1 #update return dic print his

python 多级字典值合并

python 多级字典值合并: #!/bin/env python import os,sys,re import cStringIO f=open('/tmp/3.txt') ''' /tmp/3.txt content: 148616  '192.168.0.127:8080'    0.157   {'200': 130000, '206': 250, '301': 90, '302': 6698, '304': 6018, '406': 5} 148616  '192.168.0.127

python将字典内容存入mysql

1.背景 项目需要,用python实现了将字典内容存入本地的mysql数据库.比如说有个字典dic={"a":"b","c":"d"},存入数据库效果图如下: 2.代码 ''' Insert items into database @author: hakuri ''' import MySQLdb def InsertData(TableName,dic): try: conn=MySQLdb.connect(host='l

python 中字典、数组

a = {"k1":"v1","A":1,"a":2,5:"i5"} a["A"] ="直接修改" a["aa"]="没有的键是新建" del a["a"] #删除一个元素 d.clear() #清空一个字典 1.字典是键值对,没有顺序, 2.键大小写敏感 3.键值可以是混合类型的 b = ["a&

python中将字典转换成定义它的json字符串

Python的字典和JSON在表现形式上非常相似 #这是Python中的一个字典 dic = { 'str': 'this is a string', 'list': [1, 2, 'a', 'b'], 'sub_dic': { 'sub_str': 'this is sub str', 'sub_list': [1, 2, 3] }, 'end': 'end' } //这是javascript中的一个JSON对象 json_obj = { 'str': 'this is a string',