博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《笨办法学Python》 第40课手记
阅读量:4121 次
发布时间:2019-05-25

本文共 2223 字,大约阅读时间需要 7 分钟。

《笨办法学Python》 第40课手记

本节课讲述的字典,一种比数组更强大的数据结构,字典(dict)的另一个名称是散列(hash)。

我将在后面具体解释dict,首先通过作者的代码来了解一下dict。

原代码如下:

cities = {
'CA': 'San Francisco', 'MI': 'Detroit', 'FL': 'Jacksonville'}cities['NY'] = 'New York' cities['OR'] = 'Portland'def find_city(themap, state): if state in themap: return themap[state] else: return "Not found."# ok pay attention!cities['_find'] = find_citywhile True: print "State? (ENTER to quit)", state = raw_input("> ") if not state: break # this line is the most important ever! Study! city_found = cities['_find'](cities, state) print city_found

while true创建了一个永远执行的while循环,这是惯常的做法。

cities[‘_find’] = find_city这里的cities[‘_find’](是创建的字典中的一个元素)被赋值成find__city函数,也可以理解为cities[‘_find’]是一个函数变量。

结果如下:

这里写图片描述

本节课涉及的知识

Python中的字典:

Python种的字典(key)和(value)组成。键(key)相当于我们日常生活中字典的页码,是一种索引或者说地址,每一个键都对应一个值。键和值实际组成了一个散列函数。

下表是字典的常用操作:

Operation Result
len(a) the number of items in a 得到字典中元素的个数
a[k] the item of a with key k 取得键K所对应的值
a[k] = v set a[k] to v 设定键k所对应的值成为v
del a[k] remove a[k] from a 从字典中删除键为k的元素
a.clear() remove all items from a 清空整个字典
a.copy() a (shallow) copy of a 得到字典副本
k in a True if a has a key k, else False 字典中存在键k则为返回True,没有则返回False
k not in a Equivalent to not k in a 字典中不存在键k则为返回true,反之返回False
a.has_key(k) Equivalent to k in a, use that form in new code 等价于k in a
a.items() a copy of a’s list of (key, value) pairs 得到一个键值的list
a.keys() a copy of a’s list of keys 得到键的list
a.update([b]) updates (and overwrites) key/value pairs from b 从b字典中更新a字典,如果键相同则更新,a中不存在则追加
a.fromkeys(seq[, value]) Creates a new dictionary with keys from seq and values set to value 创建一个新的字典,键来自seq,值对应键对应的值
a.values() a copy of a’s list of values 得到字典值的副本
a.get(k[, x]) a[k] if k in a, else x 得到a[k],若存在返回x
a.setdefault(k[, x]) a[k] if k in a, else x (also setting it) 得到a[k],若不存在返回x,并设定为x
a.pop(k[, x]) a[k] if k in a, else x (and remove k) 弹出a[k],若不存在则返回x,同时将删除k键
a.popitem() remove and return an arbitrary (key, value) pair 弹出a中对象的键和值,并删除弹出的键和值
a.iteritems() return an iterator over (key, value) pairs 返回a中所有对象(键和值)
a.iterkeys() return an iterator over the mapping’s keys 返回a中所有键(索引)
a.itervalues() return an iterator over the mapping’s values 返回a中所有值
你可能感兴趣的文章
poj 1976 A Mini Locomotive (dp 二维01背包)
查看>>
MODULE_DEVICE_TABLE的理解
查看>>
db db2_monitorTool IBM Rational Performace Tester
查看>>
postgresql监控工具pgstatspack的安装及使用
查看>>
【JAVA数据结构】双向链表
查看>>
【JAVA数据结构】先进先出队列
查看>>
Objective-C 基础入门(一)
查看>>
Flutter Boost的router管理
查看>>
iOS开发支付集成之微信支付
查看>>
C++模板
查看>>
【C#】如何实现一个迭代器
查看>>
【C#】利用Conditional属性完成编译忽略
查看>>
DirectX11 光照演示示例Demo
查看>>
VUe+webpack构建单页router应用(一)
查看>>
Node.js-模块和包
查看>>
(python版)《剑指Offer》JZ01:二维数组中的查找
查看>>
Spring MVC中使用Thymeleaf模板引擎
查看>>
PHP 7 的五大新特性
查看>>
深入了解php底层机制
查看>>
PHP中的stdClass 【转】
查看>>