python dict类型学习

最近开始学些Python, 会陆续整理一些个人学习笔记, 开始学习python, 如果有内容不正确, , 欢迎指正。

以下内容在python 2.7中运行

# coding=utf-8
# This is a sample Python script.
import traceback

key1 = "key1"
key2 = "key2"
keyX = "x"
keyNotExist = "not-exist"

dict1 = {key1: "value1", keyX: 10.0, "y": -5}
print "---show init map---"
print(dict1)
print "\n"

print "---show dict type map---"
print "dict Variable Type:%s" % type(dict1)



dict1[key2] = "val2"
dict1[keyX] = "5"
print "---add one %s and change one %s to map---" % (key2, keyX)
print(dict1)
print "\n"


# 遍历字典列表
print "---print all by items---"
for key, value in dict1.items():
    print key, value
print "\n"

print "---print all keys---"
print "keys: %s" % dict1.keys()
print "\n"

print "---is key exist has_key---"
print "dict has %s:%s" % (key2, dict1.has_key(key2))
print "dict has %s:%s" % (keyNotExist, dict1.has_key(keyNotExist))
print "\n"

v1 = dict1[key1]

v2OfKeyNotExistDefVal = dict1.get(keyNotExist, "default value")
# 变量必须赋值,因此给-1
v3OfKeyNotExist = -1
try:
    # 会报异常KeyError: 'not-exist'
    v3OfKeyNotExist = dict1[keyNotExist]
except Exception as ex:
    # 返回字符串类型,只给出异常信息,不包括异常信息的类型
    print'when getting key %s, ex:%s' % (keyNotExist, str(ex))
    # 给出较全的异常信息,包括异常信息的类型
    print'when getting key %s, ex:%s' % (keyNotExist, repr(ex))
    # 需要导入traceback模块 此时获取的信息最全,与python命令行运行程序出现错误信息一致
    # print 'traceback.print_exc():'; traceback.print_exc()
    print 'traceback.format_exc():\n%s' % traceback.format_exc()


print "%s:%s, %s:%s, %s:%s" % (key1, v1, keyNotExist, v2OfKeyNotExistDefVal, keyNotExist, v3OfKeyNotExist)
print "\n"

del dict1[key2]
try:
    # KeyError: 'not-exist'
    del dict1[keyNotExist]
except Exception as ex:
    print 'when deleting key, ex:', ex
    print 'when getting key %s, ex:%s' % (keyNotExist, repr(ex))
finally:
    print('finally in deleting exception')
print "\n"
print "---del %s and not-existing key from map---" % key2
print(dict1)
print "\n"

dict1.clear()
print "---clear all---"
print(dict1)
print "\n"

运行结果

/Users/xxx/PycharmProjects/pythonProject/venv/bin/python /Users/xxx/PycharmProjects/pythonProject/mapdemo.py
---show init map---
{'y': -5, 'x': 10.0, 'key1': 'value1'}


---show dict type map---
dict Variable Type:<type 'dict'>
---add one key2 and change one x to map---
{'y': -5, 'x': '5', 'key1': 'value1', 'key2': 'val2'}


---print all by items---
y -5
x 5
key1 value1
key2 val2


---print all keys---
keys: ['y', 'x', 'key1', 'key2']


---is key exist has_key---
dict has key2:True
dict has not-exist:False


when getting key not-exist, ex:'not-exist'
when getting key not-exist, ex:KeyError('not-exist',)
traceback.format_exc():
Traceback (most recent call last):
  File "/Users/ericyang/PycharmProjects/pythonProject/mapdemo.py", line 49, in <module>
    v3OfKeyNotExist = dict1[keyNotExist]
KeyError: 'not-exist'

key1:value1, not-exist:default value, not-exist:-1


when deleting key, ex: 'not-exist'
when getting key not-exist, ex:KeyError('not-exist',)
finally in deleting exception


---del key2 and not-existing key from map---
{'y': -5, 'x': '5', 'key1': 'value1'}


---clear all---
{}



Process finished with exit code 0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值