Python的字典及内置函数

本文详细介绍了Python中字典的各种操作方法,包括创建、访问、更新、删除等,并演示了字典推导式的使用,以及如何利用字典内置方法高效地进行键值管理和合并。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 创建字典(字典键值唯一)

 


# 1 创建一个空字典再赋值

a = {}   # 或者 a=dict()
a['two'] = 2
a['one'] = 1
a['three'] = 3


# 2传入可迭代对象
b = dict(zip(['one', 'two', 'three'], [1, 2, 3]))
c = dict([('two', 2), ('one', 1), ('three', 3)])

# 3 直接字典赋值
d = dict(one=1, two=2, three=3)
e = {"one": 1, "two": 2, "three": 3}
f = dict({'three': 3, 'one': 1, 'two': 2})


print(a == b == c == d == e == f)
# res:True

 

字典推导式生成

 

# 字典推导式

dial_dodes = [(86, 'china'),
              (91, 'India'),
              (1, 'United States'),
              (62, 'Indonesia'),
              (55, 'Brazil'),
              (92, 'Pakistan'),
              (880, 'Bangladesh'),
              (234, 'Nigeria'),
              (7, 'Russia'),
              (81, 'Japan'),
              ]

country_code = {country: code for code, country in dial_dodes}
print(country_code)

#字典推导式交换key-value
exchange={code:country for country,code in country_code.items()}
print(exchange)
#res:
{'china': 86, 'India': 91, 'United States': 1, 'Indonesia': 62, 'Brazil': 55, 'Pakistan': 92, 'Bangladesh': 880, 'Nigeria': 234, 'Russia': 7, 'Japan': 81}
{86: 'china', 91: 'India', 1: 'United States', 62: 'Indonesia', 55: 'Brazil', 92: 'Pakistan', 880: 'Bangladesh', 234: 'Nigeria', 7: 'Russia', 81: 'Japan'}


  • 访问字典

  • dic1 = dict(one=1, two=2, three=3)
    dic2 = dict(china=96, India=91, US=1)
    dic1.update(dic2)
    # print(dic1)
    
    print(dic1.get('one'))
    print(dic1.get('onee'))
    print(dic1['onee'])
    # True
    # None
    # TypeError: 'builtin_function_or_method' object is not subscriptable

    访问字典时,采取dict.get(key)  的方法,如果键不存在返回none不报错

  • print('one' in dic1)
    

     

  • 修改字典

a['one']=1000
  • 删除字典

 

# 删除字典
del country_code['Japan'] # 删除键 'Name'
print(country_code)
country_code.clear()     # 清空字典
del  country_code        # 删除字典

print(country_code)
#res
{'china': 86, 'India': 91, 'United States': 1, 'Indonesia': 62, 'Brazil': 55, 'Pakistan': 92, 'Bangladesh': 880, 'Nigeria': 234, 'Russia': 7}
{}
  • 更新字典,多个字典合并成一个字典

 

# 更新字典,两个字典叠加
dic1 = dict(one=1, two=2, three=3)
dic2 = dict(china=96, India=91, US=1)
dic1.update(dic2) #注意合并之后存在dic1
print(dic1) #
#res
{'one': 1, 'two': 2, 'three': 3, 'china': 96, 'India': 91, 'US': 1}
  • 字典内置方法

  • dic.get()和dic.setdefault()的区别
  • res1=dic1.setdefault('onee', 123)
    print(res1)
    print(dic1)
    
    res2=dic1.get('twoo',222)
    print(res2)
    print(dic1)
    区别:dic.setdefault()如果不存在得到并更新默认值 dic.get()得到默认值,不更新字典
  • dic.pop()和dic.popitem(key[,default])
  • 其他

  • 访问字典中的键、值和键值对

dic1 = dict(one=1, two=2, three=3)
dic2 = dict(china=96, India=91, US=1)
dic1.update(dic2)
dic1.keys()
dic1.values()
dic1.items()
  • dict.fromkeys(seq[,value]) 
  • 创建一个新字典,以序列seq为对应的键,value 为每个键的默认值
    
     
  • ss=list('abcd')
    nn=list('1234')
    new=dict.fromkeys(ss,nn)
    print(new)
    new2=dict.fromkeys(ss)
    print(new2)
    new3=dict.fromkeys(ss,100)
    print(new3)
    # res
    # 
    # {'a': ['1', '2', '3', '4'], 'b': ['1', '2', '3', '4'], 'c': ['1', '2', '3', '4'], 'd': ['1', '2', '3', '4']}
    # {'a': None, 'b': None, 'c': None, 'd': None}
    # {'a': 100, 'b': 100, 'c': 100, 'd': 100}

     

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值