python中字典

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)))


 

 
 


 

 


posted @ 2021-01-23 22:58  maxwell11  阅读(310)  评论(0编辑  收藏  举报