首页 > 编程语言 > 详细

python中字典

时间:2021-01-24 01:04:07      阅读:31      评论:0      收藏:0      [点我收藏+]

1.字典,python中的一种数据结构,以key ,value格式存储,是可变数据类型

2.字典的定义:key不能重复,字典的key 可以是字符串或整数

                        value可以是任意数据类型,可以重复,可以是字符串,列表,字典,元组,布尔值等

3.二维元组或列表可以直接转成字典

a = ((‘mac‘, 10), (‘coffee‘, 20))
a = dict(a)
print(a)
# {‘mac‘: 10, ‘coffee‘: 20}
b = [[‘小米6‘, ‘2499‘], [‘P40‘, ‘3999‘]]
b = dict(b)
# print(b)
# {‘小米6‘: ‘2499‘, ‘P40‘: ‘3999‘}

4.一维元组或列表转成字典,使用fromkeys方法可以对列表或元组进行去重,可以将一维元组或列表转成字典,排序会乱,跟set一样,按照哈希表进行排序

d = (‘mac‘, ‘coffee‘, ‘mac‘)
c = {}
c = c.fromkeys(d)
print(c)
{‘mac‘: None, ‘coffee‘: None}

#给字典的key添加默认值
c = c.fromkeys(d,0)
print(c)
{‘mac‘: 0, ‘coffee‘: 0}

5.字典的取值

  #1.根据key的名称去取,取不到会报错

    j = {"a": 1, "b": 2}

   print(j[‘a‘])

  # 1

 #2.通过字典的get方法去取,取不到返回None,不会报错

    j = {"a": 1, "b": 2}

    print(j.get(‘b‘))

    #2

  #取不存在的key,默认返回结果为None

   print(j.get(‘d‘))

   #None

 # 如果取不到key,返回结果为0

  print(j.get(‘d‘, 0))

  #0

6.字典的赋值,根据key的名称去改

    j = {"a": 1, "b": 2}

   j["b"] = 3

   print(j)

  {‘a‘: 1, ‘b‘: 3}

7.字典的循环

   <1>. 通过keys去循环,取到所有的key:

dict1 = {"a": 1, "b": 2, "c": 3}
# for i in dict1.keys():
#   print(i)
# a b c

  <2>.通过values去循环,取到所有的value:

# for j in dict1.values():
# print(j)
# 1 2 3

  <3>. 通过key , value一起循环:

     for k ,v in dict1.items():

           print(k)

   print(v)

 8.字典的方法:

   <1>. del 慎用,删除字典

        data = {"a": 1, "b": 2, "c": 3

    #<1>.删除某个key:

   # del data[‘a‘]
# print(data)
# {‘b‘: 2, ‘c‘: 3}
#<2>. del 字典 清除字典的内存地址,彻底清除字典
del data
print(data)
# NameError: name ‘data‘ is not defined

   <2>. 列表删除,remove方法,del也可以

  data = [1, 2, 3, 4]
#1.根据索引去删除
del data[3]
print(data)
[1,2,3]

#2.使用remove方法删除,使用对象删除,也就是索引的值
data.remove(3)
print(data)
#[1, 2, 4]

   <3>. pop 字典通过pop方法,根据key去弹出和删除

    data = {"a": 1, "b": 2, "c": 3}
print(data.pop("c")
#3
print(data)
# {‘a‘: 1, ‘b‘: 2}

   <4>. 更新字典的key

        1.先弹出字典的key[‘c‘],再将字典赋值‘d‘

    data={"a":1,"b":2,"c":3}

      data[‘d‘] = data.pop(‘c‘)

         print(data)

         {‘a‘: 1, ‘b‘: 2, ‘d‘: 3}

  <5>.清空字典 删除字典的所有项或元素,保留空字典

   # data = {"a": 1, "b": 2, "c": 3}
# data.clear()
# print(data)
# {}

  <6>.fromkeys 方法

       <1>.使用字典的fromkeys方法将列表转成成字典,并取出字典的keys,转成列表,由于key不能重复,转换的列表值不重复,排序会乱

    # a = [1, 2, 1, 3, 1, 2]
# print(list(dict.fromkeys(a).keys()))
# [1, 2, 3]

  <7>.update 字典的更新,可以把两个字典合并成一个,字典的key,如果有重复就替换,没有就追加

 a = {"a": 1, "b": 2, "c": 3}
b = {"d": 4, "c": 5}
a.update(b)
print(a)
# {‘a‘: 1, ‘b‘: 2, ‘c‘: 5, ‘d‘: 4}

  <8>.判断字典是否相等,必须是字典的长度,键,值相等

  

  <9>.字典的排序:

         #1.强行对字典进行排序,只会对key进行排序  

           a = {"a": 1, "b": 2, "c": 3}

           print(sorted(a))

           # [‘a‘, ‘b‘, ‘c‘]

       

        #2. items把字典转成多维元组,将多维元组进行排序的话,默认是按照第一项进行排序,排出的结果是个列表,里面套的元组

     a = {"a": 1, "b": 2, "c": 3}

              # print(sorted(a.items()))

             # [(‘a‘, 1), (‘b‘, 2), (‘c‘, 3)]

        #3. 按照字典的values进行排序,需要使用lamba,使用items转成多维元组,按多维元组的第二项进行排序,默认按照升序排序(reverse=False),如果要按照降序排序,则reverse=True  

     a = {"a": 1, "b": 2, "c": 3}

            print(sorted(a.items(),key=lambda x: x[1],reverse=True))

      # [(‘c‘, 3), (‘b‘, 2), (‘a‘, 1)

 #小练习:把字典{‘k3‘: 3, ‘k2‘: 2, ‘k1‘: 1}处理成字符串的形式: k1:1|k2:2|k3:3

c = {‘k3‘: 3, ‘k2‘: 2, ‘k1‘: 1}
list = []
for k, v in c.items():
list.append(f‘{k}:{v}‘)
print(‘|‘.join(sorted(list)))


 

 
 


 

 


python中字典

原文:https://www.cnblogs.com/maxwellsky/p/14319455.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!