字典的定义和操作 (Python)

字典是由key and value 构成,无序结构(不想列表那样有固体位置);

note:key 是唯一的,没有重复;

字典可以多级嵌套;

定义:

dict1 = {                    # 由等式构成 dict = { “key” : "value,....}
    "sid170" : "hbb",        # :不能写成“=” ; 结束要有 “,”.
    ‘sid171‘ : "zheng",
    ‘tid‘ : {                # 嵌套 "key1" : {"key" : "value"}
     "tid01" : "wang",
     ‘tid02‘ : "deng"
}                            # 总体而言需要注意:1)何时用等号,何时用冒号;2)记得加逗号
}

操作:单级的操作

info = {
    # "sid1701" = "hbb", #错误的书写方式:将:写成=
      "sid170" : "hbb",
      ‘sid171‘ : "zhang",
      ‘sid172‘ :  "tian"
}
print(info)                                                           # {‘sid170‘: ‘hbb‘, ‘sid171‘: ‘zhang‘, ‘sid172‘: ‘tian‘}

# add
# info ["sid173"] : "新来的"      # 错误:等号 写成 冒号                  # {‘sid170‘: ‘hbb‘, ‘sid171‘: ‘zhang‘, ‘sid172‘: ‘tian‘}
# info ‘sid177‘ = ‘sunwukong‘    # 错误:[] 写成 “ ”
info ["sid173"] = "新来的"        # 感觉不好记呀                         # {‘sid170‘: ‘hbb‘, ‘sid171‘: ‘zhang‘, ‘sid172‘: ‘tian‘, ‘sid173‘: ‘新来的‘}
print(info

# revise
info ["sid170"] = ‘HBB‘          # 表达方式和新增相同,只是将旧的内容换掉   #{‘sid170‘: ‘HBB‘, ‘sid171‘: ‘zhang‘, ‘sid172‘: ‘tian‘, ‘sid173‘: ‘新来的‘}
print(info)

# delete
info.pop ("sid173")              # 标准删除(建议这个)                   # {‘sid170‘: ‘HBB‘, ‘sid171‘: ‘zhang‘, ‘sid172‘: ‘tian‘}
print(info)
del info ["sid172"]              # 也能删除,感觉不好就                  # {‘sid170‘: ‘HBB‘, ‘sid171‘: ‘zhang‘, ‘sid173‘: ‘新来的‘}
print(info)
info.popitem()                   # 随机删除一个                         # {‘sid170‘: ‘HBB‘}
print(info)

info ["sid177"] = ‘孙悟空‘
info [‘sid178‘] = ‘白骨精‘        # 上面的东西太少了,再添加两个
print(info)
# find someone
print(‘sid178‘ in info)          # 标准用法 (是否在其中)              # True
print(‘sid172‘ in info)                                              # False

print(info.get(‘sid177‘))        # 导出信息                           # 孙悟空
print(info["sid178"])            # 导出信息                           # 白骨精
# print(info["sid179"])          # 没有的话显示出错                    # KeyError: ‘sid179‘

print(info.keys())               # 输出 keys                          # dict_keys([‘sid170‘, ‘sid177‘, ‘sid178‘])
print(info.values())             # 输出 valuse                        # dict_values([‘HBB‘, ‘孙悟空‘, ‘白骨精‘])

操作:多级简单操作

info = {
      "sid170" : "hbb",
      ‘sid171‘ : "zhang",
      ‘tid‘ : {
               "tid01" : "wang",
               "tid02" : "deng"
            }
}                                # define
print(info)
#  add one
info ["sid173"] = ‘bao‘
print(info)
# add more
info_3 = {
    "nid" : {
        "nid01" : "li",
        ‘nid02‘ : "jie"
    }
}
# info.update(info_3)           # style 1

info.setdefault("sid",{"sid01":"li",‘sid02‘:"zhang"})  # style 2
print(info)           # difference bigger 两种方式不同之处:1)表达的不同;2)作用的不同。具体下面

# revise
info ["tid"][‘tid01‘] = "zhong" # 逐层去找,然后更改 
print(info)

# delete
del info ["tid"]["tid02"]       # 逐层去找,然后删除
print(info)

del info ["sid"]                 # 删除一个层
print(info)
# info.pop(["tid"]["tid01"])     # can‘t use 

# find
print(info.get("tid"))
# print(info.get(["tid"]["tid01"]))  # can‘t use
print(‘tid‘ in info)      # True
# print(‘tid01‘ in info)    # False  # can‘t use

操作3:多级复杂操作

 1 info = {
 2       "sid170" : "hbb",
 3       ‘sid171‘ : "zhang",
 4       ‘sid172‘ :  "tian",
 5       ‘tid‘ : {
 6                "tid01" : "wang",
 7                "tid02" : "deng"
 8             }
 9 }                                                # 首先定义一个嵌套列表
10 print(info)                                      # keys output                                        # {‘sid170‘: ‘hbb‘, ‘sid171‘: ‘zhang‘, ‘sid172‘: ‘tian‘, ‘tid‘: {‘tid01‘: ‘wang‘, ‘tid02‘: ‘deng‘}}
11 print(info.keys())                               # values output                                        # dict_keys([‘sid170‘, ‘sid171‘, ‘sid172‘, ‘tid‘])
12 print(info.values())                                                                         # dict_values([‘hbb‘, ‘zhang‘, ‘tian‘, {‘tid01‘: ‘wang‘, ‘tid02‘: ‘deng‘}])
13
14 info.setdefault( "did" ,{"did01":‘zhou‘,‘did02‘:‘li‘})   # 新加一个嵌套关系,若原来没有就增加进去   # {‘sid170‘: ‘hbb‘, ‘sid171‘: ‘zhang‘, ‘sid172‘: ‘tian‘, ‘tid‘: {‘tid01‘: ‘wang‘, ‘tid02‘: ‘deng‘}, ‘did‘: {‘did01‘: ‘zhou‘, ‘did02‘: ‘li‘}}
15 info.setdefault( "tid" ,{"did01":‘zhou‘,‘did02‘:‘li‘})   # 如果原来有,不做任何修(前一行代码加*运行) #{‘sid170‘: ‘hbb‘, ‘sid171‘: ‘zhang‘, ‘sid172‘: ‘tian‘, ‘tid‘: {‘tid01‘: ‘wang‘, ‘tid02‘: ‘deng‘}
16 print(info)
17
18 info_2 = {
19     "tid01" : "gu",
20     "tid03" : "zhuan",
21 }                                       # 定义一个新的字典
22 print(info)                             # 旧结果字典                   # {‘sid170‘: ‘hbb‘, ‘sid171‘: ‘zhang‘, ‘sid172‘: ‘tian‘, ‘tid‘: {‘tid01‘: ‘wang‘, ‘tid02‘: ‘deng‘}, ‘did‘: {‘did01‘: ‘zhou‘, ‘did02‘: ‘li‘}}
23 print(info_2)                           # 新字典结果                   # {‘tid01‘: ‘gu‘, ‘tid03‘: ‘zhuan‘}
24 info.update(info_2)                     # 将新字典同步到旧字典           # {‘sid170‘: ‘hbb‘, ‘sid171‘: ‘zhang‘, ‘sid172‘: ‘tian‘, ‘tid‘: {‘tid01‘: ‘wang‘, ‘tid02‘: ‘deng‘}, ‘did‘: {‘did01‘: ‘zhou‘, ‘did02‘: ‘li‘}, ‘tid01‘: ‘gu‘, ‘tid03‘: ‘zhuan‘}
25 print(info)                             # 没有的新增进去;已经有的不同的,更新掉(注意与setdefault的不同)
26                  # 写法不同;意义不同
27 print(info_2.items())                   # 将字典的结果,按照列表输出。    # dict_items([(‘tid01‘, ‘gu‘), (‘tid03‘, ‘zhuan‘)])

总结1: 操作类型一:

# style 1 of operation.
info [‘sid174‘] = "bao"

info [‘sid171‘] = "jian"

del info [‘sid170‘]

print(‘sid171‘ in info)

 总结2 操作类型二:dict.XXXX

info.pop("sid172")
print(info)

info.popitem()
print(info)

print(info.get("sid171"))

print(info.keys())
print(info.values())

info.setdefault( "tid" ,{"did01":‘zhou‘,‘did02‘:‘li‘})
print(info)

info.update()

print(info.items())

类型比较繁杂:

单级词典;多级词典。单机操作的情况,有的还不能用于多级(可能是我操作失误,请指教)。

不同类型的操作。

最后的循环:

for i in info:
    print(i)
    print("---------line---------")
    print(i,info [i])

‘‘‘sid170
---------line---------
sid170 hbb
sid171
---------line---------
sid171 zheng
tid
---------line---------
tid {‘tid01‘: ‘wang‘, ‘tid02‘: ‘deng‘}‘‘‘

需要慢慢消化呀。。。。

时间: 2024-08-03 15:35:56

字典的定义和操作 (Python)的相关文章

python列表、字典、字符串常用操作

Python 列表.字典.字符串常用操作 1.字符串操作 字符串可以通过下标取值,但由于字符串是不可变变量,不可通过下标来修改值. str = 'lily terry mark' name[0]    #获取第1个字符串值 name[0:7]   #获取第1~7的字符串值 name[:7]   #缺省开始位置,默认从第1个元素开始取值 name[0:]   #缺省结束位置,默认到字符串末尾结束 字符串包含判断操作符:in .not in .is 'lily' in names 'lily' no

Javascript Jquery 中的数组定义与操作

Javascript Jquery 中的数组定义与操作 (2012-02-15 10:28:00) 转载▼ 标签: 杂谈   1.认识数组 数组就是某类数据的集合,数据类型可以是整型.字符串.甚至是对象Javascript不支持多维数组,但是因为数组里面可以包含对象(数组也是一个对象),所以数组可以通过相互嵌套实现类似多维数组的功能 1.1 定义数组 声明有10个元素的数组 var a = new Array(10); 此时为a已经开辟了内存空间,包含10个元素,用数组名称加 [下标] 来调用,

ORACLE基本定义、操作语句

ORACLE基本定义.操作语句 一.           表 1.创建表 CREATE TABLE TAB_NAME ( COL_01  VARCHAR2(10) NOT NULL, COL_02  NUMBER(8,2), COL_03  DATE ); 2.添加主键约束 ALTER TABLE TAB_NAME ADD CONSTRAINT PK_COL_01 PRIMARY KEY(COL_01); 3.添加唯一性约束 ALTER TABLE TAB_NAME ADD CONSTRAINT

堆的定义与操作

如题,堆的定义与操作. 1 #define MAXDATA 1000 /* 该值应根据具体情况定义为大于堆中所有可能元素的值 */ 2 3 typedef struct HNode *Heap; /* 堆的类型定义 */ 4 typedef int ElememntType; /* 堆中的元素类型 */ 5 struct HNode { 6 ElementType *Data; /* 存储元素的数组 */ 7 int Size; /* 堆中当前元素个数 */ 8 int Cap; /* 堆的最大

Python元组类型、字典类型及常用操作

一.元组类型 1.用途 记录多个值,当多个值没有改的需求,此时用元组更合适,Python的元组与列表类似,不同之处在于元组的元素不能修改. 2.定义方式 在()内用逗号分隔开多个任意类型的值 t=(1,6,(5,''),{}) #t=tuple((1,6,(5,''),{})) t1=tuple('hello') 3.常用操作+内置的方法 优先掌握的操作:1.按索引取值(正向取+反向取):只能取 t=(1,6,(5,''),[1,5,3]) t[0]='1' 2.切片(顾头不顾尾,步长) t=(

集合的定义,操作及运算 (Python)

集合的定义: 集合和列表([  ]) 与  字典 ( {    }) 不同,没有特别的特别的语法格式.可以使用set () 创建. 集合同字典一样是无序的.也是不具有重复性的.因此可以把列表变成集合进行去重. 集合具有特别的关系性能,交集,并集,差集等. # hanbb come on! list1 = [1,4,5,7,3,6,7,9] # 列表 s1 = set(list1) # remove repeat,such as 7 ; 自动去重 (列表转化为集合) s2 = set([1,6,0

Python 字典的定义以及常用方法

定义(字典的key必须是不可变类型,也成为可hash类型,并且字典是无序的): info={'name':'egon','age':18,'sex':'male'} 或 info=dict({'name':'egon','age':18,'sex':'male'}) # 取某个KEY的值 print(info['age']) # 增加KEY和值 info['height']=1.80 print(info) #遍历字典KEY for key in info: print(key) info={'

Python基础2 字符串、列表、字典、集合等操作

列表.元祖操作 列表 语法: name = ['jack', 'tom', 'bob'] 列表切片 列表切片的特点是"顾头不顾尾" >>> name = ['jack', 'tom', 'bob'] >>> name[:] ['jack', 'tom', 'bob'] >>> name[1:] ['tom', 'bob'] >>> name[1:2] ['tom'] >>> name[:-1] [

Python 列表的定义及操作

# 列表概念:有序的可变的元素集合 # 定义 # 直接定义 nums = [1,2,3,4,5] # 通过range函数构造,python2 和python3 版本之间的差异: # python3 用的时候才会去构造 nums = range(1,101) # 列表嵌套 # 注意和C语言中数组的区别,是否可以存放不同的数据类型 nums = [1,2,"ab","1",True,["a","b","c"]]