字典类似于java中的map,元素都是键值对
# 列表,字典不能当做字典的key值
dt = {
1:46453,
True:123,
"dsf":545,
#[12,45]:77
#{"ab":12}:45
(12,34):45
}
print(dt)
dt = {
"key1": "abc", # 一个键值对(key:value)是一个元素
# 键值对的value可以是任何值
"key2": [
"ddd",
(88,99),
{
"key1": "vvv",
"key2": "yyy",
"key3": (1236,456)
}
],
"key3": (999, "ccc")
}
# 字典中的元素是无序的
# 因为无序,只能通过key获取value
v = dt["key2"][2]["key3"][1]
print(v)
del dt["key2"][2]["key1"]
print(dt)
#删除字典key值
del dt["key2"]
print(dt)
# 同字典的keys() 方法一样
for item in dt:
print(item)
# 遍历key值
for item in dt.keys():
print(item)
# 遍历value值
for item in dt.values():
print(item)
# 遍历键值对
for k,v in dt.items():
print(k,v)
# 清空字典
dt.clear()
# 根据序列创建字典
# 第一个参数(可遍历参数)中的每个元素都被当成一个key
# 第二个参数是每个key的value
dt = dict.fromkeys("abcde",123)
# {'a': 123, 'b': 123, 'c': 123, 'd': 123}
print(dt)
# 直接通过 dt[key]方式,如果key值在字典中不存在,就会报错
# 通过get方法,如果没有key,则返回None,还可以指定返回值代替None
vv = dt.get("aa",110)
print(vv)
# 根据key值移除键值对,当参数对应的key值不存在,第二个参数可以指定返回的值
v = dt.pop("aa",0)
print(v)
# popitem()删除,但目前我不知道是不是随机删除,返回值返回一个键值对
v = dt.popitem()
print(v)
# 设置value
# 如果字典中存在key,不会覆盖,并且返回key对应的value
# 不存在key,设置,并且返回第二个参数(默认None)
v = dt.setdefault("aa")
print(dt, v)
# 更新 -- 参数是一个字典
dt.update({"a":456,"b":890,"bb":110})
print(dt)
# 更新 -- python会将这种参数转换成字典,然后进行更新
dt.update(a=789,b=120)
print(dt)
enumerate遍历可迭代对象
tu = ('123','456','789','10')
for idx, elem in enumerate(tu, 100):
print(idx, elem)
lt = [123, 456, 89, 10,"abc"]
for idx, elem in enumerate(lt, 100):
print(idx, elem)
s = "xiatian"
for idx, elem in enumerate(s, 100):
print(idx, elem)