首页 > 其他分享 >5字典类型内置方法

5字典类型内置方法

时间:2023-05-30 17:23:43浏览次数:25  
标签:default 内置 get python dic print key 类型 字典

目录

一、字典类型内置方法(dict)

1.用途:存多个值,但每一个值都有一个key与之对应,key对值有描述功能。多用于存的值表示的是不同的状态时,例如存的值有姓名、年龄、身高、体重、爱好。

2.定义:{}内用逗号分隔开多个元素,每一个元素都是key:value的形式,value可以是任意数据类型,而key通常应该是字符串类型,但是key必须为不可变类型。

python

dic = {'a': 1, 'b': 2}  # dic = dict({'a':1,'b':2})

print(f"dic: {dic}")

default

dic: {'a': 1, 'b': 2}

python

dic = dict(a=1, b=2, c=3)

print(f"dic: {dic}")

default

dic: {'a': 1, 'b': 2, 'c': 3}

python

dic = {1: 'a', 0: 'b'}

print(f"dic[0]: {dic[0]}")  # 无法区分dic是列表,还是字典,并且key不再具有描述信息

default

dic[0]: b

python

dic = {[1,2]: 'a', 0: 'b'}  # 报错

3.常用操作+内置方法:常用操作和内置方法分为优先掌握(今天必须得记住)、需要掌握(一周内记住)两个部分。

1.1 优先掌握(*****)

  1. 按key存取值:可存可取
  2. 长度len
  3. 成员运算in和not in
  4. 删除del
  5. 键keys()、值values()、键值对items()
  6. 循环

1.按key存取值:可存可取

python

# dic之按key存取值
dic = {'a': 1, 'b': 2}

print(f"first dic['a']: {dic['a']}")

dic['a'] = 3

print(f"second dic['a']: {dic['a']}")

default

first dic['a']: 1
second dic['a']: 3

2.长度len

python

# dic之长度len
dic = {'a': 1, 'b': 2}

print(f"len(dic): {len(dic)}")

default

len(dic): 2

3.成员运算in和not in

python

# dic之成员运算in和not in
dic = {'a': 1, 'b': 2}

print(f"'a' in dic: {'a' in dic}")
print(f"1 in dic: {1 in dic}")

default

'a' in dic: True
1 in dic: False

4.删除

python

# dic之删除del
dic = {'a': 1, 'b': 2}
del dic['a']

print(f"dic.get('a'): {dic.get('a')}")

default

dic.get('a'): None

python

# dic之删除pop()
dic = {'a': 1, 'b': 2}
dic.pop('a')  # 指定元素删除

print(f"dic.pop('b'): {dic.pop('b')}")
print(f"dic.get('a'): {dic.get('a')}")

default

dic.pop('b'): 2
dic.get('a'): None

python

# dic之删除popitem()
dic = {'a': 1, 'b': 2}

print(f"dic.popitem(): {dic.popitem()}")  # popitem() 方法随机返回并删除字典中的一对键和值(一般删除末尾对)。

default

dic.popitem(): ('b', 2)

5.键keys()、值values()、键值对items()

python

# dic之键keys()、值values()、键值对items(),python2中取出的是列表(鸡蛋);python3中取出的是元组(鸡)
dic = {'a': 1, 'b': 2}

print(f"dic.keys(): {dic.keys()}")
print(f"dic.values(): {dic.values()}")
print(f"dic.items(): {dic.items()}")

default

dic.keys(): dict_keys(['a', 'b'])
dic.values(): dict_values([1, 2])
dic.items(): dict_items([('a', 1), ('b', 2)])

6.循环

python

# dic之循环
# dic是无序的,但是python3采用了底层优化算法,所以看起来是有序的,但是python2中的字典是无序
dic = {'a': 1, 'b': 2, 'c': 3, 'd': 4}

for k, v in dic.items():  # items可以换成keys()、values()
    print(k, v)

default

a 1
b 2
c 3
d 4

1.2 需要掌握(****)

  1. get
  2. update
  3. fromkeys
  4. setdefault

1.get()

python

# dic之get()
dic = {'a': 1, 'b': 2}

print(f"dic.get('a'): {dic.get('a')}")
print(f"dic.get('c'): {dic.get('c')}")

default

dic.get('a'): 1
dic.get('c'): None

2.update()

python

# dic之update()
dic1 = {'a': 1, 'b': 2}
dic2 = {'c': 3}
dic1.update(dic2)

print(f"dic1: {dic1}")

default

dic1: {'a': 1, 'b': 2, 'c': 3}

3.fromkeys()

python

# dic之fromkeys()
dic = dict.fromkeys(['name', 'age', 'sex'], None)

print(f"dic: {dic}")

default

dic: {'name': None, 'age': None, 'sex': None}

4.setdefault()

python

# dic之setdefault(),有指定key不会改变值;无指定key则改变值
dic = {'a': 1, 'b': 2}

print(f"dic.setdefault('a'): {dic.setdefault('a',3)}")
print(f"dic: {dic}")
print(f"dic.setdefault('c'): {dic.setdefault('c',3)}")
print(f"dic: {dic}")

default

dic.setdefault('a'): 1
dic: {'a': 1, 'b': 2}
dic.setdefault('c'): 3
dic: {'a': 1, 'b': 2, 'c': 3}

二、练习

统计s='hello tank tank say hello sb sb'中每个单词的个数

结果如:{'hello': 2, 'tank': 2, 'say': 1, 'sb': 2}

python

s='hello tank tank say hello sb sb'

l=s.split()

dic={}
for item in l:
    if item in dic:
        dic[item]+=1
    else:
        dic[item]=1
print(dic)

default

{'hello': 2, 'tank': 2, 'say': 1, 'sb': 2}

4.存一个值or多个值:多个值,值可以是多个类型,key必须是不可变类型,通常应该是不可变类型中的字符串类型

5.有序or无序:无序

python

dic = {'a': 1, 'b': 2}
print(f'first:{id(dic)}')
dic['a'] = 3
print(f'second:{id(dic)}')

default

first:4356627632
second:4356627632

6.可变or不可变:可变数据类型

标签:default,内置,get,python,dic,print,key,类型,字典
From: https://www.cnblogs.com/aidd/p/17443800.html

相关文章

  • 字典
    字典'''Createdon2019年12月1日@author:hp'''importrandommp={'zuofei':1,'chudai':2,'saiwen':3}print(mp,'\n',mp['zuofei'])mp2={}#空字典print(mp2)mp3=dict()#空字典print(mp3)m......
  • pcdn go 采集nat类型
    packagemainimport( "fmt" stun"github.com/ppma/nat-type")const( STUN_SERVER="stun.qq.com" STUN_PORT=3478)funcmain(){ localAddr:=fmt.Sprintf("%s:%d","192.168.8.109",8569) stunAd......
  • 泛型的注意事项:擦除问题、基本数据类型
        ......
  • 查询Oracle数据字典SQL
    SELECT A.TABLE_NAMEAS"表名", A.COLUMN_NAMEAS"字段名", DECODE( A.CHAR_LENGTH, 0, DECODE( A.DATA_SCALE, NULL, A.DATA_TYPE, A.DATA_TYPE||'('||A.DATA_PRECISION||','||A.DATA_SCALE||')' ), ......
  • Photoshop 2023 Beta 内置Ai绘图功能介绍&安装教程
    距离Adobe软件公司首次将图像编辑及数字绘画软件Photoshop推出到大众面前已经过去35年,最近该公司又再次书写了属于Photoshop的历史新篇章。最近,Adobe宣布Photoshop(Beta)迎来更新,新增「创意填充(GenerativeFill)」功能,生成式AI绘图由AdobeFirefly提供支持,Adobe的创意生成AI模型系......
  • Hudi表类型和查询类型
    官方参考Table&QueryTypes查询类型快照查询(SnapshotQueries)查询最新的数据。增量查询(IncrementalQueries)查询指定时间范围内新增或修改的数据。读优化查询(ReadOptimizedQueries)仅查询Parquet格式的基础文件中的数据,为MOR表特有。表类型支持的查询类......
  • “编不下去了!”~如何在泛型方法里获取T的类型?
    我定义了一个hessian2反序列化的工具方法。为了便于使用,使用了泛型。可是遇到了一个问题,其中调用的Hessian2Input#readObject的入参类型是Class实例。那么,怎么获取泛型T的类型呢?publicstatic<T>Tdeserialize(byte[]bytes)throwsIOException{try(ByteArrayInputStr......
  • Redis数据类型【Redis】
    Redis采用的是键值对存储,键的类型只能为字符串,值支持五种数据类型  Redis的value 类似Java中 特点 字符串类型(string) String 普通字符串哈希类型(hash) HashMap key不可重复,value可重复列表类型(list)LinkedList 数据排序,可重复 集合类型(se......
  • c++类型转换
    C语言中的类型转换C语言和C++都是强类型语言,如果赋值运算符左右两侧变量的类型不同,或形参与实参的类型不匹配,或返回值类型与接收返回值的变量类型不一致,那么就需要进行类型转换。C语言中有两种形式的类型转换,分别是隐式类型转换和显式类型转换:隐式类型转换:编译器在编译阶段自......
  • C#引用类型带ref关键字的用处
    1.在C#中有两个大的数据类型,值类型和引用类型。1)任何的结构体(例如:structInt32...)或者是枚举都是值类型。2)能被称作"类"的,则为引用类型,比如你用如下关键字(class、interface、delegate、record),或者是使用C#内置的引用类型:dynamic、object、string。引用类型和值类型。引用类......