首页 > 编程语言 >Python基础知识7

Python基础知识7

时间:2024-10-10 15:22:26浏览次数:12  
标签:None name Python age 基础知识 dict print 字典

Python字典(dict )

1.字典是一种可变容器模型,且可存储任意类型对象。

2.字典的每个键值对( key:value )用冒号分割,每个对之间用逗号分割,整个字典包括在花括号 {} 中

d = {key1 : value1, key2 : value2, key3 : value3 }

创建字典

1.dict 作为 Python 的关键字和内置函数,变量名不建议命名为 dict。

2.键必须是唯一的,但值则不必。

3.值可以取任何数据类型,但键必须是不可变的,如字符串,数字。

d1 = {}#创建空字典
d2 = dict()#使用内建函数 dict()创建字典
d3 = {"name":"karen","age":23}
d4 = dict({"name":"jack","age":24})


# x={"name":"karen","age":20,y:100}#报错,y未定义
y="money"
x={"name":"karen",
   "age":20,
   y:100}#不报错,y在定义字典之前被定义,字典可换行书写
print(x)#{'name': 'karen', 'age': 20, 'money': 100}


x4={
    "name":"jack",
    "age":20,
    "name":"jack2"
}
print(x4)#{'name': 'jack2', 'age': 20} 如果键值对相同取靠后的键值对,键名不能一样,但键值可以一样

x5={(10,20):100}#字典中键值对的键名可以是不可变的数量类型 键值可以是任何数据类型

访问字典里的值

1.访问字典里的值

2.如果用字典里没有的键访问数据,会输出错误

mydic = {'Name': 'hqyj', 'Age': 7, 'Class': 'First'} 
print (mydic['Name'])#hqyj
print (mydic['Alice'])#报错
# print(mydic[1:2])#报错 字典的键无论是不是有顺序的数字 都不能切片,只能通过key取值

修改字典

1.向字典添加新内容的方法是增加新的键/值对,修改或删除已有键/值对

x7={"x":100,"y":200}
x7["y"]=999999
print(x7)# {'x': 100, 'y': 999999}
# re=x7["z"]#报错,取字典中不存在的键报错
x7["z"]=1111#存字典中不存在的键,不会报错,新增的键值对会存入字典中
print(x7)# {'x': 100, 'y': 999999, 'z': 1111}{'x': 100, 'y': 999999, 'z': 1111}

删除字典元素

1.能删单一的元素也能清空字典,清空只需一项操作

2.显式删除一个字典用del命令

mydic = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
 
del mydic['Name'] # 删除键 'Name'
mydic.clear()     # 清空字典
print (mydic['Age'])#报错

del mydic         # 删除字典
print(mydic) #出错,字典已经被删除

 字典键的特性

1.字典值可以是任何的 python 对象,既可以是标准的对象,也可以是用户定义的,但键不行。

2.不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住

mydic = {'Name': 'jack', 'Age': 27, 'Name': 'karen'}
print (mydic['Name'])#karen

3.键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行

mydic1 = {97:"a",98:"b"}
mydic2 = {"name":"karen","age":27}
mydic3 = {['Name']: 'karen', 'Age': 27}
print(mydic3[['Name']])#报错unhashable type: 'list'

字典常用的API

len(dict)

1.len(dict):计算字典元素个数,即键的总数。

x8={1:20,9:232,"name":"jack",True:121212}#True会变为1
print(x8)#{1: 121212, 9: 232, 'name': 'jack'}
print(len(x8))#3 1和True算为1个长度,只会存在一个

str(dict)

1.str(dict):输出字典,可以打印的字符串表示。

x8={1:20,9:232,"name":"jack",True:121212}#True会变为1
q=str(x8)#将字典转化为字符串,字典都是一个字符串
#网络传输数据时非常有用
print(q,type(q))#{'name': 'karen', 'age': 20, 'money': 100} <class 'str'>
#JSON是一种字符串(python中的字典相当于其他语言(java)的对象)

type(variable)

1.type(variable):返回输入的变量类型,如果变量是字典就返回字典类型。

字典的方法

dict.clear()

1.dict.clear():删除字典内所有元素

dict.copy()

1.dict.copy():返回一个字典的深复制

x={1:20,9:232,"name":"jack",True:121212,"vip":False,"books":["book1","book2"]}
x2=x.copy()
x2[1]=999999
x2["books"][0]=9999
print(x)#{1: 121212, 9: 232, 'name': 'jack', 'vip': False, 'books': [9999, 'book2']}
print(x2)#{1: 999999, 9: 232, 'name': 'jack', 'vip': False, 'books': [9999, 'book2']}
x2["books"]=[10,20,30]
print(x)#{1: 121212, 9: 232, 'name': 'jack', 'vip': False, 'books': [9999, 'book2']}
print(x2)#{1: 999999, 9: 232, 'name': 'jack', 'vip': False, 'books': [10, 20, 30]}

dict.fromkeys(seq)

1.dict.fromkeys(seq):创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值

keys=[10,20,30,40]
x=dict.fromkeys(keys)
print(x)#{10: None, 20: None, 30: None, 40: None}

keys=range(10)
x=dict.fromkeys(keys)
print(x)#{0: None, 1: None, 2: None, 3: None, 4: None, 5: None, 6: None, 7: None, 8: None, 9: None}

dict.get(key, default=None)、dict.setdefault(key, default=None)

1.dict.get(key, default=None):返回指定键的值,如果键不在字典中返回 default 设置的默认值

x={0: None, 1: None, 2: None, 3: None, 4: None, 5: None, 6: None, 7: None, 8: None, 9: None}
# age=x["age"]#报错
age=x.get("age")
print(age)#None 不报错
age=x.get("age",100)#没有,默认取100
print(age)#100

2.dict.setdefault(key, default=None):和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default

x={0: None, 1: None, 2: None, 3: None, 4: None, 5: None, 6: None, 7: None, 8: None, 9: None}
x.setdefault("name","jack")#在字典后面添加了一对键值对
print(x)#{0: None, 1: None, 2: None, 3: None, 4: None, 5: None, 6: None, 7: None, 8: None, 9: None, 'name': 'jack'}
# x.setdefault(key=1,__default="jack",)#key为1或者11都没有任何操作

key in dict

1.key in dict:如果键在字典dict里返回true,否则返回false

dict.keys()、dict.values()、dict.items()

1.dict.keys():返回一个视图对象

x={"name":"karen","age":20,"vip":False}
obj=x.keys()
print(obj)#dict_keys(['name', 'age', 'vip'])
for el in obj:
    print(el)#name、age、vip
for el in x:
    print(el)#name、age、vip
for el in x:#el取出的是字典的键名,是字符串就是字符串,是数字就是数字
    print(x[el])#不能是print(x["el"]),字典中没有这个el的字符串

2.dict.values():返回一个视图对象

x={"name":"karen","age":20,"vip":False}
obj2=x.values()
print(obj2)#dict_values(['karen', 20, False])
#遍历字典值
for el in obj2:
    print(el)

3.dict.items():以列表返回一个视图对象

x={"name":"karen","age":20,"vip":False}
obj3=x.items()#items中每个数据是元组
print(obj3)#dict_items([('name', 'karen'), ('age', 20), ('vip', False)])
for el in obj3:
    print(el)#('name', 'karen')、('age', 20)、('vip', False)

#for循环中的必须是元组才可以k、v这样写
for el in obj3:
    k,v=el
    print(k,v)#name karen、age 20、vip False

for k,v in obj3:#k是循环下标 v是对应的值
    print(k,v)#name karen、age 20、vip False

dict.update(dict2)

1.dict.update(dict2):把字典dict2的键/值对更新到dict里

x={1:200,2:2222}
y={1:333,4:5444,5:2233}
z=x.update(y)
print(z)#None 直接修改x
print(x)#{1: 333, 2: 2222, 4: 5444, 5: 2233}
# z=x+y
# print(z,1111)#报错

pop(key,default)

1.pop(key,default):删除字典 key(键)所对应的值。

x={"name":"karen","age":20,"vip":False}
d=x.pop("vip")
# d=x.pop("vip2")#不能删除不存在的键名
print(x)#{'name': 'karen', 'age': 20}
print(d)#False

popitem()

1.popitem():返回并删除字典中的最后一对键和值。

x={"name":"karen","age":20,"vip":False}
x.popitem()
x.popitem()
print(x)#{'name': 'karen'}
x.popitem()#没有键值对不能在删除了
print(x)#{}

标签:None,name,Python,age,基础知识,dict,print,字典
From: https://blog.csdn.net/m0_73723097/article/details/142793823

相关文章

  • Python基础知识8
    Python集合(set)1.集合(set)是一个无序的不重复元素序列。2.集合中的元素不会重复,并且可以进行交集、并集、差集等常见的集合操作。创建集合1.可以使用大括号{}创建集合,元素之间用逗号,分隔,或者也可以使用set()函数创建集合。parame={value01,value02,...}set(va......
  • 高数基础知识2
    定积分定义1.定积分表示函数f(x)在区间[a,b]上的累积效应或面积。几何意义1.如果f(x)≥0,则定积分表示曲线下方的面积。2.如果f(x)≤0,则定积分表示曲线上方的面积的负值。性质1.线性性质(其中c和d是常数)2.区间可加性(其中a≤c≤b)3.积分上下限交换4.定积分中......
  • Python 处理 JSON 格式数据
    Author:ACatSmilingSince:2024-10-09需求:将文件中的JSON格式数据,指定Key的值替换。对于文件的整个文本为JSON格式的数据。示例:{'A':{'a':23.45,'b':56.78,'c':89.01}}Python代码:importjson#读取原始JSON数......
  • 【python实操】python小程序之继承
    引言python小程序之继承文章目录引言一、继承1.1概念1.1.1基本语法1.1.2关键点解释1.1.3示例1.1.4总结1.2题目1.3代码1.4代码解释1.4.1类定义1.4.2对象创建与方法调用1.4.3总结二、思考一、继承1.1概念python中的继承是一种强大的机制,它允许一......
  • <Project-8.1 pdf2tx-MM> Python Flask 用浏览器翻译PDF内容 2个翻译引擎 繁简中文结果
    更新ProjectName:pdf2tx(P6)Date:5oct.24Function:在浏览器中翻译PDF文件Code:https://blog.csdn.net/davenian/article/details/142723144升级ProjectName:pdf2tx-mm(P8)7oct.24 加入多线程,分页OCR识别,提高性能与速度使用googletranslator, AzureAPI做......
  • C#基础知识总结-快速掌握看这一篇就够了
    C#基础知识总结-快速掌握看这一篇就够了目录一、类库:图书馆,命名空间:书架,类:书籍,方法:目录1、类库的引用2、初识类与名称空间3、依赖关系4、类与对象的关系......
  • 【Python脚本】getopt参数解析笔记
    getopt参数解析笔记背景在Python中,使用getopt模块进行命令行参数解析是常见的需求。在编写脚本时,正确地定义参数选项对于确保程序正常运行至关重要。这是一个用于检测安卓软件版本的脚本一部分,有些用法和笔记分享给大家问题描述在某个脚本中,使用getopt解析命令......
  • [Python手撕]第 k 个缺失的正整数
    给你一个严格升序排列的正整数数组arr和一个整数k。请你找到这个数组里第k个缺失的正整数。示例1:输入:arr=[2,3,4,7,11],k=5输出:9解释:缺失的正整数包括[1,5,6,8,9,10,12,13,...]。第5个缺失的正整数为9。示例2:输入:arr=[1,2,3,4],k=2输出:6解释:缺......
  • 基于Python后端构建多种不同的系统终端界面研究
    在我们一般开发系统的时候,往往会根据实际需要做出各种不同的系统终端界面,如基于BS的,CS、APP、小程序等等,一般都是基于一个统一接入的WebAPI后端,本篇系统探寻对基于Python后端构建多种不同的系统终端界面研究,介绍一些基于Python后端开发的不同终端界面。1、Python系统终端界面我......
  • 最新毕设-Python-旅游数据分析与可视化系统-48196(免费领项目)可做计算机毕业设计JAVA、
    基于python的旅游数据分析与可视化系统的设计与实现摘 要本文旨在设计和实现一个基于Python的旅游数据分析可视化系统。该系统以旅游数据为研究对象,利用Python的数据处理能力和可视化技术,对旅游数据进行深入分析,并通过直观的可视化图表展示分析结果。本文首先介绍了旅游数......