首页 > 编程语言 >Python-字典的基本操作

Python-字典的基本操作

时间:2023-04-27 17:23:42浏览次数:53  
标签:Python age 键值 num dict print 基本操作 字典

1.字典的创建

1.1、直接赋值创建字典

语法格式:变量名={键1:值1,键2:值2,...}

info={'第一个':0,"第二个":1,"第三个":2}
print(info)

1.2、使用内置函数dict()创建字典

内置函数dict()可通过其他字典、“(键,值)”对的序列或关键字参数来创建字典。

#创建空的字典
info2 = dict()

#使用内置函数dict()通过其他字典创建
info2=dict(info)
print(info2)

#通过dict和zip结合创建
info4=dict(zip(['num','name','age'],['2003','小明','19']))
print(info4)
#{'num': '2003', 'name': '小明', 'age': '19'}

1.3、使用fromkeys()方法创建字典

当所有键对应同一个值时,可使用fromkeys()方法创建字典。

语法格式:dict.fromkeys(seq[,value])

其中,seq为字典的键的列表,value为键对应的同一值,缺省时默认为None

info3=dict.fromkeys(["张三","李四"],18)
print(info3)
#{'张三': 18, '李四': 18}

 

2.修改和添加元素

 当以指定键为下标给字典元素赋值时,有两种含义:

(1)、若该键在字典中存在,则表示修改该键对应的值

(2)、若该键不存在,则表示添加一个新的键值对,即添加一个新元素到字典中

#如果该“键”在字典中存在,则表示修改该“键”对应的值
print(info4)
#{'num': '2003', 'name': '小明', 'age': '19'}

info4['age']=18
print(info4['age'])
#18

#如果该“键”不存在,则表示添加一个新的“键值对”,即添加一个新元素到字典中
info4['sex']='男'
print(info4['sex']) #男
print(info4) #{'num': '2003', 'name': '小明', 'age': 18, 'sex': '男'}

 

3.删除元素

要删除字典中的元素或整个字典,可以使用del命令、clear()方法、pop()方法或popitem()方法。

3.1、del命令:根据键删除字典中的元素

del根据键删除字典中的元素

del info4['sex']
print(info4)
#{'num': '2003', 'name': '小明', 'age': 18}

3.2、clear()方法:删除字典中的所有元素

clear()方法删除字典中的所有元素

info4.clear()
print(info4)
#{}

3.3、pop()方法:删除指定的键值对,并返回该键的值

语法格式:dict.pop(key[,default])

其中,dict表示字典名,key表示删除的键,default是默认值,当字典中没有要删除的Key时,该方法返回指定的默认值。

pop()方法删除指定的键值对,并返回该键的值。

print(info4.pop('num'))
#2003 删除num键值对,并返回原有的值

print(info4.pop('num',0))
#0 因为前面num已经被删除了,无指定值,返回默认值0

3.4、popitem()方法:随机删除并返回一个键值对

语法格式:dict.popitem()

其中,dict表示字典名。该方法无参数,返回值为一个随机的键值对

popitem()方法随机删除并返回一个键值对。

info5={'num': '2003', 'name': '小明', 'age': '19'}
print(info5.popitem())
#('age', '19')
print(info5) 
#{'num': '2003', 'name': '小明'}

 

4.更新字典

update()方法用于将新字典的键值对一次性全部添加到当前字典中,如果两个字典中存在相同的键,则以新字典中的值更新当前字典。

语法格式:dict.update(dict1)

其中,dict表示当前字典,dict1表示新字典

#update()方法将新字典的键值对一次性全部添加到当前字典中,如果两个字典中存在相同的值,则以新字典中的值更新当前字典
info6={'num': '2003', 'name': '小明', 'age': {'19','20'}}
#修改num值,同时添加新元素sex
info6.update({'num':2002,'sex':'男'})
print(info6)
#{'num': 2002, 'name': '小明', 'age': {'19', '20'}, 'sex': '男'}

 

5.复制字典

#copy()方法,返回字典的浅复制,复制父对象及其子对象的引用
info7=info6.copy()
print(info7)

#deepcopy()方法,深复制,完全复制父对象及其子对象,此方法包含在copy模块中
info8=copy.deepcopy(info6)
print(info8)
info9=info6
print("======================================")
info6['num']=2001
info6['age'].remove('20')

说明:

(1)info9是直接赋值,都指向同一个对象。所以info6改变info9也改变

print(info9)
#{'num': 2001, 'name': '小明', 'age': {'19'}, 'sex': '男'}

(2)info7是浅复制,info6和info7是独立的对象,但他们的子对象还是指向同一个对象。所以num没变但age中的子对象变了

print(info7)
#{'num': 2002, 'name': '小明', 'age': {'19'}, 'sex': '男'}

(3)info8是深复制,info6和info8是完全独立的,所以修改info6的值并不会影响info8

print(info8)
#{'num': 2002, 'name': '小明', 'age': {'19', '20'}, 'sex': '男'}

 

6.遍历字典

(1)items()方法可以遍历字典中所有的键值对,该方法返回(键,值)元组。

语法格式:dict.items() 其中dict表示字典

(2)当不需要使用字典中的值时,可使用keys()方法只遍历字典中的键

语法格式:dict.keys()

(3)当只需要使用字典中的值时,可使用values()方法

语法格式:dict.values()

说明:

#item()方法遍历字典中所有的键值对,返回可遍历的(键,值)元组

#key()只遍历字典中的键

#values()遍历字典中的值

例子:

dictionary={
    '张三':'zhangsan',
    '李四':'lisi',
    '王五':'wangwu',
    '赵六':'zaoliu',
}

print('所有键值对:')
for e in dictionary.items():
    print(e)

print('所有键:')
for x in dictionary.keys():
        print(x,end=' ')
print('所有值:')
for i in dictionary.values():
        print(i,end=' ')

# 所有键值对:
# ('张三', 'zhangsan')
# ('李四', 'lisi')
# ('王五', 'wangwu')
# ('赵六', 'zaoliu')

# 所有键:
# 张三 李四 王五 赵六

# 所有值: # zhangsan lisi wangwu zaoliu

 

标签:Python,age,键值,num,dict,print,基本操作,字典
From: https://www.cnblogs.com/yeyuzhuanjia/p/17359516.html

相关文章

  • Python MatplotlibDeprecationWarning Matplotlib 3.6 and will be removed two minor
    在Pycharm中使用Matplotlib中的pyplot时,运行代码报错:MatplotlibDeprecationWarning:SupportforFigureCanvaseswithoutarequired_interactive_frameworkattributewasdeprecatedinMatplotlib3.6andwillberemovedtwominorreleaseslater.解决方法File->Set......
  • Python中的运算符与优先级
    算术运算符这里仅列出与c++语法不一致的内容。指数a**b取模a%%b整除a//b比较运算符与c++语法完全相同,用于判断两个变量、常量或者表达式之间的大小,比较运算的结果是布尔类型。逻辑运算符与c++语法完全相同,对布尔型的常量、变量或表达式进行运算,逻辑运算的......
  • Python的OS模块分析文件路径层次信息——获取文件路径、全名(文件名+尾缀)
    Code:importosFilePath="/a/bb/ccc/dddd.png"FolderPath,FullFileName=os.path.split(FilePath)Name,Suffix=os.path.splitext(FullFileName)print("文件路径:{}\n文件全名:{}\n文件名:{}\n文件后缀:{}".format(FolderPath,FullFileName,Name,......
  • Python数据类型
    Python语言中有6个标准数据类型。不可变数据(3个):Number(数字)、String(字符串)、Tuple(元组);可变数据(3个):List(列表)、Dictionary(字典)、Set(集合)。有序数据:元组,列表无序数据:集合,字典数字number整型int正或负整数,不带小数点。可以使用十六进制数值来表示整数,十六进制整数的......
  • Python-字符串format方法指定参数
    一、字符串的format方法有几种指定参数的方式:(1)默认方式—传入的参数与{}一一对应(2)命名参数(3)未知参数{2}二、详细描述字符串的format方法如何格式化字符串:第一种方法:s1='Todayis{},thetemperatureis{}degrees.'print(s1.format('Saturday',24))第二种方法:s2='To......
  • python-doc替换docx表格字段后,设置替换后字段的字体、字号、对齐方式
    python-doc替换docx表格字段后,设置替换后字段的字体、字号、对齐方式fromdocximportDocument#打开docx文档doc=Document(r'E:\hhj\202304\图片excel\example.docx')#遍历文档中的所有表格fortableindoc.tables:#遍历表格中的每个单元格forcellinta......
  • Python12类内置函数大汇总
    内置函数就是python给你提供的,拿来直接用的函数,比如print.,input等。截止到python版本3.6.2python一共提供了68个内置函数,我将它们分成12类,方便你学习。#68个内置函数abs()dict()help()min()setattr()all()dir()hex()next()slice()any()......
  • zip函数组装字典和列表
    zip:字面意思就是打包的意思,目的也是打包组装列表:defget_dict(a:list,b:list):d=list(zip(a,b))returndif__name__=='__main__':#print(time_specific())list1=[1,2,3]list2=[4,5,6]print(get_dict(list1,list2))结果:D:\Pyth......
  • Python之操作redis数据库
    Python操作redis数据库步骤1、导入redis模块2、建立连接3、写入命令importredisip='xxx.xx.xx.xx'password='123456'r=redis.Redis(host=ip,password=password,port=6379,db=1)res=r.get('lrx2')print(res)#结果为:b'\xe5\x97\xafohyeah234324'#结果是......
  • Python布尔值属于数字类型吗?
    今日鸡汤列郡讴歌惜,三朝出入荣。大家好,我是皮皮。一、前言前几天在Python黄金交流群【dcpeng】问了一道Python类型的基础问题,如下图所示。二、实现过程针对这个问题,大佬们一起讨论,给出了具体的结论,Python里的布尔值是数字类型。这里【崔峰】给了一个代码,如下所示:可以看到,布尔类型......