Python数据类型之字典

在Python中,字典的格式很简单,一个大括号里有一组KV对,即key:value,一个键key对应一个值value。键必须是唯一的,但值则不必是唯一的

字典是可变数据类型,即字典的数据发生变化,字典这个对象在内存里的地址不会变化;但是字典的key值必须是不可变数据类型,如字符串,数字或元组。

1、创建

# :左边不能重复,且不可变类型"" or''都可以
my_dict = {
    'name' : 'KENNY',
    'city' : "xi'an",
    'code' : 'python'
}
print(my_dict)  # {'name': 'KENNY', 'city': "xi'an", 'code': 'python'}

# 输出时一定要与字典里的键一样
# 虽然字典里有name这个键,但是字典里的key是字符串类型的,所以查询的时候也需要是字符串格式的
# print(my_dict[name])  # NameError: name 'name' is not defined
print(my_dict['name'])  # KENNY

 2、增加

# 直接增加:dic1['KEY'] = value -->若之前有KEY,则会覆盖。若没有KEY,则新增至尾处
my_dict['age'] = 18
print(my_dict)  # {'name': 'KENNY', 'city': "xi'an", 'code': 'python', 'age': 18}

# 用dic.setdefault('KEY',value/None) --->若之前有KEY,则不修改。若没有KEY,则新增至尾处
my_dict.setdefault('sex', 'male')
print(my_dict)  # {'name': 'KENNY', 'city': "xi'an", 'code': 'python', 'age': 18, 'sex': 'male'}

3、删除

my_dict = {
    'name': 'KENNY',
    'city': "xi'an",
    'code': 'python',
    'sex': 'red'
}

# 1、用dic.pop('KEY')--->按KEY删除,有返回值,返回值为value,若没有KEY则报错。
# 注:没有KEY时,采用dic.pop("KEY",None/'自定义')则不报错,会返回自定义的返回值。即可设置返回值
temp = my_dict.pop('sex')
print(temp)  # red
print(my_dict)  # {'name': 'KENNY', 'city': "xi'an", 'code': 'python'}

# 2、用dic.popitem()--->随机删除KEY:value,返回(KEY,value)元祖
temp = my_dict.popitem()
print(temp)  # ('code', 'python')
print(my_dict)  # {'name': 'KENNY', 'city': "xi'an"}

# 3、用del dic['KEY']--->删除KEY:value。没有KEY则报错
del my_dict['name']
print(my_dict)  # {'city': "xi'an"}

# 4、用dic.clear()--->清空字典
my_dict.clear()
print(my_dict)  # {}

# 5、用del dic ---->删除字典
del my_dict
print(my_dict)  # NameError: name 'my_dict' is not defined

 4、修改

my_dict = {
    'name': 'KENNY',
    'city': "xi'an",
    'code': 'python',
    'sex': 'red'
}

# 直接改
print(my_dict)  # {'name': 'KENNY', 'city': "xi'an", 'code': 'python', 'sex': 'red'}
my_dict['name'] = 'Kenny'
print(my_dict)  # {'name': 'Kenny', 'city': "xi'an", 'code': 'python', 'sex': 'red'}

# 更新字典:dic2.update(dic1) --->将dic1中所有的KEY:value更新到dic2中。相同KEY更新,不同KEY直接增加。dic1不变,
#::重要::循环一个字典时,不能删除字典的键值对
your_dict = {
    'name': 'Jone',
    'city': "beijing",
    'code': 'python',
    'height': '180cm'
}
my_dict.update(your_dict)
print(my_dict)  # {'name': 'Jone', 'city': 'beijing', 'code': 'python', 'sex': 'red', 'height': '180cm'}

 5、查找

my_dict = {
    'name': 'KENNY',
    'city': "xi'an",
    'code': 'python',
    'sex': 'red'
}
# 1、print(dic.keys())--->输出一个列表,类型是dict_keys,其内容是所有的KEY值,
print(my_dict.keys())  # dict_keys(['name', 'city', 'code', 'sex'])

# 循环输出:for i in dic: print(i)等同于for i in dic.keys():print(i)--->输出KEY
for i in my_dict:
    print(i)
    """
    name
    city
    code
    sex
    """
for i in my_dict.keys():
    print(i)
    """
    name
    city
    code
    sex
    """

# 2、print(dic.values())--->输出一个列表,类型是dict_values,其内容是所有的value值
print(my_dict.values())  # dict_values(['KENNY', "xi'an", 'python', 'red'])

# 循环输出for i in dic.values():print(i) --->输出所有的value
for i in my_dict.values():
    print(i)
    """
    KENNY
    xi'an
    python
    red
    """

# 3、print(dic.items())--->输出一个列表,其类型是dict_items,其内容是所有的(KEY,value)
print(my_dict.items())  # dict_items([('name', 'KENNY'), ('city', "xi'an"), ('code', 'python'), ('sex', 'red')])

# 循环输出1:for i in my_dict.items():print(i)--->输出所有的(KEY,value)元祖
for i in my_dict.items():
    print(i)
    """
    ('name', 'KENNY')
    ('city', "xi'an")
    ('code', 'python')
    ('sex', 'red')
    """

# 循环输出2:for k,v in dic.items():print(i)--->输出所有的KEY value
for key,value in my_dict.items():
    print(f'{key}:{value}')
    """
    name:KENNY
    city:xi'an
    code:python
    sex:red
    KENNY
    """

# 4、print(dic['KEY'])--->输出对应的value值,若没有KEY值则会报错
# 注:print(dic.get(KEY,None/"自定义"))--->输出对应的value值,若没有KEY值则返回自定义值
print(my_dict['name'])  # KENNY

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值