码迷,mamicode.com
首页 > 编程语言 > 详细

python学习(五)字典学习

时间:2017-10-21 19:09:03      阅读:220      评论:0      收藏:0      [点我收藏+]

标签:lte   编写   key   工作   anti   语言   运行   列表   存在   




#!/usr/bin/python


# 字典
# 当时学java的时候, 语言基础就学了好久, 然后是各种API, 最后才是集合

# 键值对, 可变

# 1. 映射操作

D = {food : Spam, quantity:4, color:pink}

print(D[food])                # 通过键来获取值

D[quantity] += 1              # 改变键对应的值


# 另一种构造字典的方法
D = {}
D[name] = Bob
D[job] = dev
D[age] = 40

# 在Python通过字典编写的搜索方法很快

# 重访嵌套
rec = {name: {first:Bob, last:Smith},
       job:[dev, mgr],
       age:40.5}

rec[name]

rec[name][last]
rec[job]
rec[job][-1]                  # ‘job‘键对应的列表的最后一个值

rec[job].append(janitor)

# 所建立的这些对象都不需要手动释放, 有Python的自动垃圾收集


# 2. 键的排序: for循环
# 字典仅支持通过键获取元素, 而且有时候还是无需的
# 如锅要对字典进行排序, 先获取键的列表, 然后使用sort方法进行排序
# 最后使用for循环逐个显示结果
Ks = list(D.keys())             # 无需列表
Ks.sort()                       # 对key进行排序

for key in Ks:
    print(key, =>, D[key])

for c in spam:
    print(c.upper())

x = 4
while x > 0:
    print(spam! * x)
    x -= 1

# 迭代和优化


squares = [ x ** 2 for x in [1, 2, 3, 4, 5]]
print(squares)

squares = []
for x in [1, 2, 3, 4, 5]:
    squares.append(x ** 2)

# 列表解析和相关的函数编程工具, 如map和filter, 通常运行得比for循环快
# 首先为了简单和可读性去编写代码, 在程序可以工作, 并证实确实有必要考虑性能之后, 再考虑该问题
# 关于这个python提供了time以及timeit和profile模块


# 不存在的键: if 测试

D = { a : 1, c : 3, b : 2}

D[e] = 99

# D[‘f‘] 键‘f‘不存在, 这样使用会报错的
# in关系表达式允许我们查询字典中一个键是否存在

if not f in D:
    print(missing key f in D)

value = D.get(x, 0)           # 获取键‘x‘的值, 如果没有获取到那么就是0付给value
    
    
D[None] = 4                     # None也可以作为键耶
print(D)

python学习(五)字典学习

标签:lte   编写   key   工作   anti   语言   运行   列表   存在   

原文地址:http://www.cnblogs.com/tuhooo/p/7705424.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!