①.、get() 返回指定键的值,如果值不在字典中返回default值.
语法:dict.get(key,default=None)
参数:
key 字典中要查找的键.
default 如果指定键的值不存在时,返回该默认值值.
例:
print("Name is:%s"% dict.get('Name')+"\n"+ "Age is:%d"% dict.get('Age'))
显示结果为:
Name is:alex
print("Value is %s" % dict)
字典是一种通过名字或者关键字引用的得数据结构,其键可以是数字、字符串、元组,这种结构类型也称之为映射.字典类型是Python中唯一内建的映射类型,基本的操作包括如下:
(1)len():返回字典中键—值对的数量;
(10)has_key函数:检查字典中是否含有给出的键
(11)items和iteritems函数:items将所有的字典项以列表方式返回,列表中项来自(键,值),iteritems与items作用相似,但是返回的是一个迭代器对象而不是列表
第一段:字典的创建
①1 直接创建字典
printd
printd['two']
printd['three']
运算结果:
=======RESTART: C:\Users\Mr_Deng\Desktop\test.py=======
printu'items中的内容:'
printitems
printu'利用dict创建字典,输出字典内容:'
d=dict(items)
printu'查询字典中的内容:'
printd['one']
items中的内容:
利用dict创建字典,输出字典内容:
查询字典中的内容:
或者通过关键字创建字典
printu'输出字典内容:'
输出字典内容:
第二段:字典的格式化字符串
print"three is %(three)s."%d
第三段:字典方法
d.clear()
{}
请看下面两个例子
d={}
dd=d
d['one']=1
printdd
printu'初始X字典:'
printx
printu'X复制到Y:'
y=x.copy()
printu'Y字典:'
printy
printu'修改Y中的值,观察输出:'
printu'删除Y中的值,观察输出'
y['test'].remove('c')
初始X字典:
X复制到Y:
Y字典:
修改Y中的值,观察输出:
删除Y中的值,观察输出
注:在复制的副本中对值进行替换后,对原来的字典不产生影响,但是如果修改了副本,原始的字典也会被修改.deepcopy函数使用深复制,复制其包含所有的值,这个方法可以解决由于副本修改而使原始字典也变化的问题.
fromcopyimportdeepcopy
x={}
x['test']=['a','b','c','d']
z=deepcopy(x)
printu'输出:'
printz
printu'修改后输出:'
x['test'].append('e')
运算输出:
输出:
{'test': ['a','b','c','d']}
修改后输出:
{'test': ['a','b','c','d','e']}
d=dict.fromkeys(['one','two','three'])
{'three':None,'two':None,'one':None}
或者指定默认的对应值
d=dict.fromkeys(['one','two','three'],'unknow')
{'three':'unknow','two':'unknow','one':'unknow'}
printd.get('one')
printd.get('four')
None
注:get函数可以访问字典中不存在的键,当该键不存在是返回None
printd.has_key('one')
printd.has_key('four')
True
False
list=d.items()
forkey,valueinlist:
printkey,':',value
one :1
it=d.iteritems()
fork,vinit:
print"d[%s]="%k,v
d[one]=1
printu'keys方法:'
list=d.keys()
printlist
printu'\niterkeys方法:'
it=d.iterkeys()
forxinit:
keys方法:
['three','two','one']
iterkeys方法:
three
two
one
d.pop('one')
d.popitem()
printd.setdefault('one',1)
d={
}
x={'one':1}
d.update(x)
printd.values()
创建一个空字典自需要一对大括号即可,从已有的键-值对映射或关键字参数创建字典需要使用 dict 函数(类)
还可使用 关键字实参 (**kwargs)来调用这个函数,如下所示:
字典的基本操作与序列十分相似:
字典与序列的不同:
方法 clear 删除所有的字典项(key-value).
复制,得到原字典的一个新副本.
效果等同于调用 dict(d) 创建新字典.
copy() 执行的是 浅复制 ,若字典的值是一个可变对象,那么复制以后,相同一个键将关联到同一个对象,修改该对象,将同时修改两个字典.
模块copy中的函数deepcopy 可执行深复制.
方法fromkeys 创建一个新字典,其中包含指定的键,且每个键对应的值都是None,或者可以提供一个i额默认值.
方法get 为访问字典项提供了宽松的环境.通常,如果你试图访问字典中没有的项,将引发错误,而get直接返回None,或者可设置默认返回值.
当字典中不存在指定键时, setdefault(k,v) 添加一个指定键-值对;且返回指定键所关联的值.
这三个方法返回值属于一种名为 字典视图 的特殊类型.字典视图可用于迭代.另外,还可确定其长度以及对其执行成员资格检查.
这三个方法自大的特点是不可变,当你的接口试图对其他用户提供一个只读字典,而不希望他们修改的时候,这三个方法是很有用的;而且当原字典发生改变时,这些方法返回的对象也会跟着改变.
方法 pop 可用于获取与指定键相关联的值,并将该键-值对从字典中删除.
popitem随机删除一个键-值对,并返回一个二维的元组 (key, value) ,因为字典是无序的,所以其弹出的顺序也是不确定的.
书上说,这个方法在大数据量时执行效率很高,但没有亲测.
方法update 使用一个字典中的项来更新另一个字典.
后台回复"大礼包",送你特别福利
上一篇:
正文
大家好,我是Pythn人工智能技术.
内置函数就是Python给你提供的,拿来直接用的函数,比如print.,input等.
abs() dict() help() min() setattr()
all() dir() hex() next() slice()
ascii() enumerate() input() oct() staticmethod()
bin() eval() int() open() str()
bool() exec() isinstance() ord() sum()
bytearray() ?lter() issubclass() pow() super()
bytes() ?oat() iter() print() tuple()
callable() format() len() property() type()
chr() frozenset() list() range() vars()
classmethod() getattr() locals() repr() zip()
compile() globals() map() reversed() __import__()
complex() hasattr() max() round()
delattr() hash() memoryview() set()
和数字相关 1. 数据类型
bool : 布尔型(True,False)
int : 整型(整数)
float : 浮点型(小数)
complex : 复数
bin() 将给的参数转换成二进制
otc() 将给的参数转换成八进制
hex() 将给的参数转换成十六进制
print(bin(10)) # 二进制:0b1010
print(hex(10)) # 十六进制:0xa
abs() 返回绝对值
round() 四舍五入
pow(a, b) 求a的b次幂, 如果有三个参数. 则求完次幂后对第三个数取余
sum() 求和
min() 求最小值
max() 求最大值
和数据结构相关 1. 序列
(1)列表和元组
list() 将一个可迭代对象转换成列表
tuple() 将一个可迭代对象转换成元组
reversed() 将一个序列翻转, 返回翻转序列的迭代器
slice() 列表的切片
lst = "土嘎嘎的粉丝们大家好啊"
it = reversed(lst) # 不会改变原列表. 返回一个迭代器, 设计上的一个规则
print(list(it)) #['啊', '好', '你']
str() 将数据转化成字符串
format() 与具体数据相关, 用于计算各种小数, 精算等.
s = "hello world!"
# hello world!
print(format(11, 'd' )) # ?进制:11
print(format(11, 'x' )) # 十六进制(?写字母):b
print(format(11, 'X' )) # 十六进制(大写字母):B
print(format(11, 'n' )) # 和d?样:11
print(format(11)) # 和d?样:11
bytes() 把字符串转化成bytes类型
print(ret) #bytearray(b'alex')
print(str(ret)) #bytearray(b'Alex')
ord() 输入字符找带字符编码的位置
chr() 输入位置数字找出对应的字符
ascii() 是ascii码中的返回该值 不是就返回u
print(chr(i), end=" ")
print(ascii("@")) #'@'
repr() 返回一个对象的string形式
print(repr(s)) # 原样输出,过滤掉转义字符 \n \t \r 不管百分号%
字典:dict 创建一个字典
集合:set 创建一个集合
frozenset() 创建一个冻结的集合,冻结的集合不能进行添加和删除操作.
len() 返回一个对象中的元素的个数
sorted() 对可迭代对象进行排序操作 (lamda)
语法:sorted(Iterable, key=函数(排序规则), reverse=False)
Iterable: 可迭代对象
key: 排序规则(排序函数), 在sorted内部会将可迭代对象中的每一个元素传递给这个函数的参数. 根据函数运算的结果进行排序
reverse: 是否是倒叙. True: 倒叙, False: 正序
lst.sort() # sort是list里面的一个方法
ll = sorted(lst) # 内置函数. 返回给你一个新列表 新列表是被排序的
#根据字符串长度给列表排序
lst = ['one', 'two', 'three', 'four', 'five', 'six']
def f(s):
return len(s)
l1 = sorted(lst, key=f, )
print(l1) #['one', 'two', 'six', 'four', 'five', 'three']
enumerate() 获取集合的枚举对象
lst = ['one','two','three','four','five']
for index, el in enumerate(lst,1): # 把索引和元素一起获取,索引默认从0开始. 可以更改
print(index)
print(el)
# 1
# one
# two
# three
# four
# five
all() 可迭代对象中全部是True, 结果才是True
any() 可迭代对象中有一个是True, 结果就是True
print(any([0,0,0,False,1,'good'])) #True
zip() 函数用于将可迭代的对象作为参数, 将对象中对应的元素打包成一个元组, 然后返回由这些元组组成的列表. 如果各个迭代器的元素个数不一致, 则返回列表长度与最短的对象相同
# (1, '醉乡民谣', '美国')
fiter() 过滤 (lamda)
语法:fiter(function. Iterable)
function: 用来筛选的函数. 在?lter中会自动的把iterable中的元素传递给function. 然后根据function返回的True或者False来判断是否保留留此项数据 , Iterable: 可迭代对象
搜索公众号顶级架构师后台回复"面试",送你一份惊喜礼包.
def func(i): # 判断奇数
l1 = filter(func, lst) #l1是迭代器
print(l1) #
map() 会根据提供的函数对指定序列列做映射(lamda)
语法 : map(function, iterable)
可以对可迭代对象中的每一个元素进行映射. 分别去执行 function
def f(i): return i
和作用域相关
locals() 返回当前作用域中的名字
globals() 返回全局作用域中的名字
def func():
a = 10
print(locals()) # 当前作用域中的内容
print(globals()) # 全局作用域中的内容
print("今天内容很多")
func()
# {'a': 10}
# {'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__':
# '__spec__': None, '__annotations__': {}, '__builtins__':
# 'func': }
# 今天内容很多
和迭代器生成器相关
range() 生成数据
next() 迭代器向下执行一次, 内部实际使?用了__ next__()?方法返回迭代器的下一个项目
iter() 获取迭代器, 内部实际使用的是__ iter__()?方法来获取迭代器
print(i)
# 10
# 0
it = iter(lst) # __iter__()获得迭代器
print(it.__next__()) #1
字符串类型代码的执行
eval() 执行字符串类型的代码. 并返回最终结果
exec() 执行字符串类型的代码
compile() 将字符串类型的代码编码. 代码对象能够通过exec语句来执行或者eval()进行求值
print(a) #None
# 动态执行代码
exec("""
print(" 我是周杰伦")
""" )
func() #我是周杰伦
com = compile(code1, "", mode="exec") # compile并不会执行你的代码.只是编译
exec(com) # 执行编译的结果
print(name) #hello
输入输出
print() : 打印输出
input() : 获取用户输出的内容
print("hello", "world", sep="*", end="@") # sep:打印出的内容用什么连接,end:以什么为结尾
#hello*world@
内存相关
文件操作相关
open() : 用于打开一个文件, 创建一个文件句柄
f.read()
f.close()
模块相关
__ import__() : 用于动态加载类和函数
# 让用户输入一个要导入的模块
import os
name = input("请输入你要导入的模块:")
__import__(name) # 可以动态导入模块
帮 助
help() : 函数用于查看函数或模块用途的详细说明
print(help(str)) #查看字符串的用途
调用相关
callable() : 用于检查一个对象是否是可调用的. 如果返回True, object有可能调用失败, 但如果返回False. 那调用绝对不会成功
print(callable(a)) #False 变量a不能被调用
def f():
print("hello")
print(callable(f)) # True 函数是可以被调用的
查看内置属性
dir() : 查看对象的内置属性, 访问的是对象中的__dir__()方法
print(dir(tuple)) #查看元组的方法
你还有什么想要补充的吗?
技术君个人微信
添加技术君个人微信即送一份惊喜大礼包
→ 技术资料共享
→ 技术交流社群
--END--
往日热文:
Python程序员深度学习的"四大名著":
这四本书着实很不错!我们都知道现在机器学习、深度学习的资料太多了,面对海量资源,往往陷入到"无从下手"的困惑出境.而且并非所有的书籍都是优质资源,浪费大量的时间是得不偿失的.给大家推荐这几本好书并做简单介绍.
获得方式:
以上就是土嘎嘎小编为大家整理的python函数字典相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!