Python数据类型-字典

字典(dict)
字典是key:value形式的一种表达形式,例如在Java中有map,JavaScript中的json,Redis中的hash等等这些形式。字典可以存储任意的对象,也可以是不同的数据类型。
1、字典的定义
A = dict(a=1, b=2)
A = {"name":"yangjian"}
A = dict([("name","yangjian"),("age",18)])

2、字典常用的方法

get(k)    # 返回key所对应的value
setdefault(k,v)     # 如果k不存在,设置一个默认值v;如果k存在,返回k所对应的v

keys()                  # 获得所有的keys
values()               # 获得所有的values
iteritems()            #  生成一个对象,每循环一次生成一个k:v   for i j in d.iteritems():print(i,j)   Python才有这个方法,Python3为items()
update()               # m.update(n),其中m,n都是字典
pop(k)                  # 删除k:v对应的元素
copy()                  # 复制

zip(l1,l2)              # 高阶函数,dict(zip(l1,l2)),把l1和l2转换成字典,其中l1,l2是列表

例子:

x = {"name":"yangjian","age":18}
print(x.get("name"))
# yangjian

print(x.get("name1","hello"))   # name1并不存在,所以要给一个默认值
# hello

print(x.keys())
# dict_keys(['name', 'age'])

print(x.values())
# dict_values(['yangjian', 18])

print(x.items())  # 字典变成列表,列表里面是元组
# dict_items([('name', 'yangjian'), ('age', 18)])

y = x.copy()
print(y)
# {'name': 'yangjian', 'age': 18}

l1 = ["a","b","c"]
l2 = ["1","2","3"]
print(dict(zip(l1,l2)))
# {'a': '1', 'b': '2', 'c': '3'}

强制类型转换

str()
int()
list()
dict()
tuple()

例子:

# 把列表l1强制转换成元组
l1 = ["a","b","c"]
print(tuple(l1))
('a', 'b', 'c')
xrange()和range()
在python3里面xrange()默认就是range()
for  i in range(0,3):
    print(i)
# 结果如下
0
1
2
raw_input()和input()
在python3中已经没有raw_input(),默认只有input()
try:
    name = raw_input("Please input your name:")
except Exception as e:
    name = input("Please input your name:")
finally:
    print("hello {0}".format(name))
len()
查看字典长度
d = {"name":"yangjian","age":18}
print(len(d))
# 2
type()
查看对象的类型
print(type(d))
# <class 'dict'>
isinstance()
判断一个对象是否是一个已知的类型
a = 2
print(isinstance(a,int))
# True
enumerate()
对于一个可迭代的对象(如列表、字符串),enumerate将其组成一个索引序列,利用它可以同时获得索引和值。
l1 = [1,2,3,4,5]
print(enumerate(l1))
for i in enumerate(l1):
    print(i)
# 结果如下
<enumerate object at 0x0000000002138708>
(0, 1)
(1, 2)
(2, 3)
(3, 4)
(4, 5)
hasattr()
判断一个对象是否有某个属性
L = ["a","b","a"]
print(hasattr(L,"append"))
# True
原文地址:https://www.cnblogs.com/yangjian319/p/8686375.html