python中id()函数、is操作符、zip()函数、map()函数、lambda函数

展示 id函数
参考链接: 内置函数
参考链接: 对象、值与类型

id(object):
返回对象的“标识值”。该值是一个整数,在此对象的生命周期中保证是唯一且恒定的。两个生命期不重叠的对象可能具有相同的 id() 值。CPython implementation detail: This is the address of the object in memory.

每个对象都有各自的编号、类型和值。一个对象被创建后,它的 编号 就绝不会改变;你可以将其理解为该对象在内存中的地址。 ‘is’ 运算符可以比较两个对象的编号是否相同;id() 函数能返回一个代表其编号的整型数。
CPython implementation detail: 在 CPython 中,id(x) 就是存放 x 的内存的地址。

描述: id() 函数用于获取对象的内存地址。
语法: id([object]) 参数说明:object – 对象。
返回值: 返回对象的内存地址。
示例:
a = 2
b = 3
print(id(a))
print(id(b))

输出:

140713021632800
140713021632832


------------------
(program exited with code: 0)

请按任意键继续. . .

is 和 is not操作符:
参考链接: 标识号比较
运算符 is 和 is not 用于检测对象的标识号:当且仅当 x 和 y 是同一对象时 x is y 为真。 一个对象的标识号可使用 id() 函数来确定。 x is not y 会产生相反的逻辑值。
简单理解: A is B 相当于id(A) == id(B), 而 A is not B 相当于 id(A) != id(B)

Python 3.7.4 (tags/v3.7.4:e09359112e, Jul  8 2019, 20:34:20) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
>>> ls = [0,1,2,3]
>>> ls1 = ls
>>> ls2 = [0,1,2,3]
>>> id(ls)
2140866570824
>>> id(ls1)
2140866570824
>>> id(ls2)
2140866571336
>>> ls is ls1
True
>>> ls is ls2
False
>>> ls is not ls2
True
>>> 
>>> ls == ls1
True
>>> ls == ls2
True
>>> ls1 == ls2
True
>>> id(ls) == id(ls2)
False
>>> 
>>> 

==操作符表示对取值的比较,具有不同标识的类的实例比较结果通常为不相等,除非类定义了 __eq__() 方法。
请参考
链接1: 比较操作符
链接2: x==y 调用 x.__eq__(y)

展示lambda函数

在Python中,lambda允许用户快速定义单行函数
语法格式:
<函数名> = lambda  <参数列表>: <表达式>
f = lambda x,y,z:x+10*y+100*z 
print(type(f))
print(f(3,4,5))
输出结果:
<class 'function'>
543


------------------
(program exited with code: 0)

请按任意键继续. . .

展示 zip()函数

zip是python中的一个内建函数,zip的大致用途:
输入是n个序列,返回的是一个由tuples组成的list,
每个tuple是输入序列中的第i个元素。如果输入的序列长度不一样,
那么返回的列表将按输入序列中最短的那个做截断。
Python 3.7.4 (tags/v3.7.4:e09359112e, Jul  8 2019, 20:34:20) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
>>> ls1 = ['a', 'b', 'c']
>>> ls2 = ['1', '2', '3']
>>> for i, j in zip(ls1, ls2):
	print(i, j)

	
a 1
b 2
c 3
>>> 
>>> 
provinces = ["浙江省","河北省","山西省","江苏省","广东省"]
cities = ["杭州市","石家庄","太原市","南京市","广州市"]
temperatures = ["31.0","28.9","32.5","18.5","19.7"]
info = zip(provinces,cities,temperatures)

print("info*****************************info")
print(info)
print(*info)

print("\n\n\ninfoList*****************************infoList")
infoList = map(list, zip(provinces,cities,temperatures))
print(infoList)
print(*infoList)


infoDict = dict(zip(provinces, cities))
print("\n\n\ninfoDict*****************************infoDict")
print(infoDict)
print(*infoDict)


infoTuple = map(tuple, zip(provinces,cities,temperatures))
print("\n\n\ninfoTuple*****************************infoTuple")
print(infoTuple)
print(*infoTuple)
info*****************************info
<zip object at 0x000001A3CBBE5188>
('浙江省', '杭州市', '31.0') ('河北省', '石家庄', '28.9') ('山西省', '太原市', '32.5') ('江苏省', '南京市', '18.5') ('广东省', '广州市', '19.7')



infoList*****************************infoList
<map object at 0x000001A3CBBE52C8>
['浙江省', '杭州市', '31.0'] ['河北省', '石家庄', '28.9'] ['山西省', '太原市', '32.5'] ['江苏省', '南京市', '18.5'] ['广东省', '广州市', '19.7']



infoDict*****************************infoDict
{'浙江省': '杭州市', '河北省': '石家庄', '山西省': '太原市', '江苏省': '南京市', '广东省': '广州市'}
浙江省 河北省 山西省 江苏省 广东省



infoTuple*****************************infoTuple
<map object at 0x000001A3CBBE5548>
('浙江省', '杭州市', '31.0') ('河北省', '石家庄', '28.9') ('山西省', '太原市', '32.5') ('江苏省', '南京市', '18.5') ('广东省', '广州市', '19.7')


------------------
(program exited with code: 0)

请按任意键继续. . .

展示 map函数

map是python内置函数,会根据提供的函数对指定的序列做映射。
map()函数的格式是:
map(function,iterable,...)
第一个参数接受一个函数名,后面的参数接受一个或多个可迭代的序列,返回的是一个集合。
把函数依次作用在list中的每一个元素上,得到一个新的list并返回。注意,map不改变原list,而是返回一个新list。
list1 = [10,20,30,40]
list2 = [4,6,8,9]

temp = map(lambda x,y:x**2+y**2, list1, list2)
print(*temp)
输出结果:
116 436 964 1681


------------------
(program exited with code: 0)

请按任意键继续. . .

参考链接

  • 5
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值