Python 中的多维字典

Python中的dict可以实现迅速查找。那么有没有像数组有二维数组一样,有二维的字典呢?比如我需要对两个关键词进行查找的时候。2D dict 可以通过

dict_2d = {‘a‘: {‘a‘: 1, ‘b‘: 3}, ‘b‘: {‘a‘: 6}}

来建立,并通过

dict_2d[‘a‘][‘b‘]

来访问。但是添加一个新的 “key-value”对却比较复杂。对一维字典,可以用

dict_1d = dict()
dict_1d[‘a‘] = 1

或者

dict_1d.update({‘a‘: 1})

来实现。但是”2-D” dictionary 新添一个”key-value”对时,不能简单的用

dict_2d[‘a‘][‘c‘] = 8

的形式。因为二维字典的两层key和value之间会混淆,需要判断第一个key是否已经存在了。添加二维的字典可以通过一个函数来简单实现:

def addtodict2(thedict, key_a, key_b, val):
    if key_a in adic:
        thedict[key_a].update({key_b: val})
    else:
        thedict.update({key_a:{key_b: val}})

同理,三维数组

def addtodict3(thedict,key_a,key_b,key_c,val):
    if key_a in thedict:
        if key_b in thedict[key_a]:
            thedict[key_a][key_b].update({key_c:val})
        else:
            thedict[key_a].update({key_b:{key_c:val}})
    else:
        thedict.update({[key_a]:{key_b:{key_c:val}})
时间: 2024-11-13 08:28:56

Python 中的多维字典的相关文章

python 中初始化二维数组的方法

最好的方法是: 初始化4*3的二维数组 a = [[0 for col in xrange(3)] for row in xrange(4)] 而不可以用: a = [[0]*3]*4 [0]*3是生成一个一维数组,再*4只是会复制出三个引用,当修改a[0][0]时,其他的三个引用的值也会发生改变,故这种方法是错误的. python 中初始化二维数组的方法

Python解析CSV中的多维字典

CSV文件结构如下,其中字段A为唯一 代码如下,Python27 1 with open(file_obj+'TEST.CSV','r') as f: 2 #转为字典 3 Reader=csv.DictReader(f) 4 #转为列表,列表中多维字典 5 csvlist1 = list(Reader) 6 #将A当做为索引 7 csvlist2 = [row['A'] for row in csvlist1] 8 #根据A的值找到下标值 9 n = csvlist2.index(A VALUE

在Python中建立N维数组并赋初值

在Python中,由于不像C++/Java这样的语言可以方便的用a[i][j]=0的方式,建立二维数组并赋初值,所以需要一个相对巧妙的方法. 可以用列表解析的方式,eg: >>> mat=[[0 for i in range(5)] for j in range(5)] >>> mat [[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]] 这样就建立了一

在python中定义二维数组

发表于 http://liamchzh.0fees.net/?p=234&i=1 一次偶然的机会,发现python中list非常有意思. 先看一段代码 [py]array = [0, 0, 0]matrix = [array*3]print matrix## [[0,0,0,0,0,0,0,0,0]][/py] 这段代码其实没有新建一个二维数组 再看一段代码 [py]array = [0, 0, 0]matrix = [array] * 3print matrix## [[0, 0, 0], [

Python中使用item()遍历字典

Python中通常使用for...in遍历字典,本文使用item()方法遍历字典. item() item()方法把字典中每对key和value组成一个元组,并把这些元组放在列表中返回. DEMO 代码如下: #!/usr/bin/env python# -*- coding: utf-8 -*-dict = {"name":"zhangsan","age":"30","city":"shangh

Python 中的字符串、字典操作方法

一.字符串 在python中字符串是一种重要数据类型.其他数据类型分别为: 数字-number -------- int.long.float.complex这几种 字符串-string -------- "使用引号"引起来的都是字符串 元组-tuple ------------ (1,2)使用小括号引起来的元素,中间用逗号隔开 以上三个为Python中的不可变对象,创建后就不能改变的量-->指该变量指向内存中的值不能被改变,当改变某个变量时候,由于其所指的值不能被改变,相当于把

python中经常使用的字典内建函数

1.len(mapping)        返回映射的长度(键-值对的个数) 2.hash(obj)              返回obj的哈希值 >>> myDict = {'name':'earth', 'port':'80'} >>> len(myDict) 2 >>> hash('name') 15034981 3.dict.copy()            返回字典(浅复制)的一个副本 >>> myDict = {'nam

Python中的元组,字典、计算器代码实例及python2与python3的区别

1.计算器实例 #/usr/bin/env python # -*- coding:utf-8 -*- # @time   :2018/1/22 21:09 # @Author :FengXiaoqing # @file   :jsq.py def add(string):     total = 0     numbers = []     numbers += string.split("+")     for num in numbers:         total += in

python中的列表和字典(二)

三. 字典以及相关使用 1. 字典的定义 dict{} 2. 字典特征:字典是无序的,key-value键值对形式,key值不重复 3. 字典的赋值:dictA = {keyA: valueA, keyB: valueB, keyC: valueC} 4. 字典的取值:dictA[keyA]  dictA.get(keyA) 5. 字典的所有键:dictA.keys()      key-value获取:dictA.items() 6. 修改字典中元素的值:dictA[keyA] = value