当前位置:首页 » 编程语言 » pythonhashmap

pythonhashmap

发布时间: 2023-07-27 09:43:59

‘壹’ python怎么构建hash map

字典

python里的字典就像java里的HashMap,以键值对的方式存在并操作,其特点如下

通过键来存取,而非偏移量;

键值对是无序的;

键和值可以是任意对象;

长度可变,任意嵌套;

在字典里,不能再有序列操作,虽然字典在某些方面与列表类似,但不要把列表套在字典上

点击(此处)折叠或打开

#coding:utf-8

#!/usr/bin/python

# Filename: map.py

table = {'abc':1, 'def':2, 'ghi':3}

print table

#字典反转

map=dict([(v,k) for k, v in table.iteritems()])

#字典遍历

for key in map.keys():

print key,":",map[key]

print len(map)

print map.keys()

print map.values()

#字典的增,删,改,查

#在这里需要来一句,对于字典的扩充,只需定义一个新的键值对即可,

#而对于列表,就只能用append方法或分片赋值。

map[4]="xyz"

print map

del map[4]

print map

map[3]="update"

print map

if map.has_key(1):

print "1 key in"

{'abc': 1, 'ghi': 3, 'def': 2}

1 : abc

2 : def

3 : ghi

3

[1, 2, 3]

['abc', 'def', 'ghi']

{1: 'abc', 2: 'def', 3: 'ghi', 4: 'xyz'}

{1: 'abc', 2: 'def', 3: 'ghi'}

{1: 'abc', 2: 'def', 3: 'update'}

1 key in

‘贰’ 993. 二叉树的堂兄弟结点(Python)

更多精彩内容,请关注 【力扣简单题】 。

难度:★★☆☆☆
类型:二叉树

在二叉树中,根节点位于深度 0 处,每个深度为 k 的节点的子节点位于深度 k+1 处。

如果二叉树的两个节点深度相同,但父节点不同,则它们是一对堂兄弟节点。

我们给出了具有唯一值的二叉树的根节点 root,以及树中两个不同节点的值 x 和 y。

只有与值 x 和 y 对应的节点是堂兄弟节点时,才返回 true。否则,返回 false。

示例 1

输入:root = [1,2,3,4], x = 4, y = 3
输出:false

示例2

输入:root = [1,2,3,null,4,null,5], x = 5, y = 4
输出:true

示例3

输入:root = [1,2,3,null,4], x = 2, y = 3
输出:false

(参考官方解答)

方法:标记父节点与深度
思路

当且仅当一对节点深度相同而父节点不相同时,它们是堂兄弟节点。一种非常直接的方法就是通过某种方法求出每一个节点的深度与父节点。

算法

我们用深度优先搜索标记每一个节点,对于每一个节点 node,它的父亲为 par,深度为 d,我们将其记录到 Hashmap 中:parent[node.val] = par 且 depth[node.val] = d。

如有疑问或建议,欢迎评论区留言~

‘叁’ python的字典怎么扩展成C呢拿什么数据结构接收100分 详细进来~

1、直接用PyObject。上策
2、转换成C++ STL的Map容器是直接对应的。中策
3、使用的是数据,而不是结构,只要能让中间的数据发挥作用,就没必要一样的结构,也就是转换成具体适合你那接下来C中应用的结构。比如只用到某几个键和某几个值。如果C中根本不应用,就回到1。中策
4、自己在C中实现这种字典。建立散列表或者红黑树表。或者最简单的两个一维数组,实现key[],value[]的一一对应。下策

热点内容
怎么启动ftp服务 发布:2025-02-07 12:27:46 浏览:865
拜托别黑我ftp 发布:2025-02-07 12:25:22 浏览:170
评价web服务器的标准是什么 发布:2025-02-07 12:24:37 浏览:444
opencvpython34 发布:2025-02-07 12:23:44 浏览:153
androidondraw调用 发布:2025-02-07 12:09:22 浏览:189
linuxkill进程 发布:2025-02-07 12:09:17 浏览:197
c语言sqrt函数怎么用 发布:2025-02-07 12:07:48 浏览:896
安卓手机怎么不用手机id登录 发布:2025-02-07 12:06:28 浏览:39
ceph缓存变慢 发布:2025-02-07 11:46:52 浏览:924
python做什么用的 发布:2025-02-07 11:46:46 浏览:565