珠海网站开发排名,网络电商推广方案,制作一个简单的网站,企业网站建设用什么语言map函数
是根据第一个参数定义的函数#xff0c;依次作用在序列上#xff0c;返回一个迭代器
s 1,2,3,4,5
# 将字符串转换成整数列表
list(map(int, s.split(,))) # [1,2,3,4,5]# 求两个连表中元素的和#xff0c;放入新列表中
data1 [1,2,3]
data2 [4,5,6]
list(map(l…map函数
是根据第一个参数定义的函数依次作用在序列上返回一个迭代器
s 1,2,3,4,5
# 将字符串转换成整数列表
list(map(int, s.split(,))) # [1,2,3,4,5]# 求两个连表中元素的和放入新列表中
data1 [1,2,3]
data2 [4,5,6]
list(map(lambda x,y:xy, data1, data2)) # [5, 7, 9]
filter函数
是根据第一个参数定义的函数来过滤序列过滤掉不符合条件的元素并返回一个迭代器
data [-1, -2, 0, 1, 0, 2, 3, 4, 5]
def filter_0(x):return False if x 0 else True# 过滤序列中的0
list(filter(filter_0, data)) # [-1, -2, 1, 2, 3, 4, 5]
list(filter(lambda x:x!0, data))# 如果第一个参数是None则过滤掉序列中bool值为False的项
data [0,1,2,3]
list(filter(None, data)) # [1,2,3]
reduce函数
将两个参数的函数作用在一个序列上把结果继续和序列的下一个元素作为函数的参数继续进行累积使用时需要导入 from functools import reduce
from functools import reducedata [1,2,3,4,5]
def _add(a,b):return abresult reduce(_add, data) # 15
result reduce(lambda x,y:xy, data)
sorted函数
用于对可迭代对象进行排序的函数。它不会改变原始可迭代对象的顺序而是返回一个新的已排序的列表
# 根据其中一个属性排序,reverse 表示降序
student [(li, 12, 3), (long, 33, 4), (fei, 20, 1), (zhang, 20,3), (mengd, 20, 0)]
res sorted(student, keylambda x: x[1], reverseTrue)
print(res)# 先根据 第2个属性正序排序再按第三个属性逆序排序
res sorted(student, keylambda x: (x[1], -x[2]))# 字典排序先根据name, 再根据age
student [{name:li, age:20}, {name:fe, age:18}, {name:lo, age:15}, {name:me, age:22}]
sorted(student, keylambda x: (x[name], x[age]))# 列表中的字典按已知顺序排序
student [{name:zhang}, {name:wang},{name:li},{name:zhao},{name:chen}]
index [li, zhang, wang, zhao]
sorted(student, keylambda x: index.index(x[name]))memoryview函数
允许 Python 代码访问一个对象的内部数据只要该对象支持 缓冲区协议 而无需进行拷贝该对象必须支持缓冲区协议比如内置对象 bytes 和 bytearray。比如当访问 bytes 和 bytearray对象进行切片的时候需要进行浅拷贝的操作如果数据非常大的时候浅拷贝也是非常消耗内存资源的如果使用memoryview函数访问 bytes 和 bytearray 不会进行拷贝是直接访问原始数据但是修改的时候也会修改原始数据。
import time# 使用正常切片进行访问时耗时 34秒
data bx * 1024 * 1024
start time.time()
data_copy data
while data_copy:data_copy data_copy[1:]
print(f{time.time() - start:0.3f})# 使用内存视图进行访问耗时只有0.2秒
data bx * 1024 * 1024
start time.time()
data_memv memoryview(data)
while data_memv:data_memv data_memv[1:]
print(fmemoryview {time.time() - start:0.3f})内置模块中使用memoryview
# ssl.pyclass SSLSocket:def sendall(self, data, flags0):self._checkClosed()if self._sslobj is not None:if flags ! 0:raise ValueError(non-zero flags not allowed in calls to sendall() on %s %self.__class__)count 0with memoryview(data) as view, view.cast(B) as byte_view:amount len(byte_view)while count amount:v self.send(byte_view[count:])count velse:return super().sendall(data, flags)
all(iterable)
如果 iterable 的所有元素为真或迭代器为空返回 True
all([1,2,3]) # Trueall([0, 1, 2]) # Falseany(iterable)
如果 iterable 的任一元素为真则返回 True。 如果迭代器为空返回 False
any([False, 0]) # False
any([0, 0, 0]) # Falseany([1,2,3]) # True
any([0, 1, 2]) # Truebin(x)
将一个整数转变为一个前缀为“0b”的二进制字符串。
bin(10) # 0b1010
bin(1000) # 0b1111101000bytes([source[, encoding[, errors]]])
返回一个新的“bytes”对象 是一个不可变序列包含范围为 0 x 256 的整数。
bytes(123123.encode()) # b123123chr(i)
返回 Unicode 码位为整数 i 的字符的字符串格式。
chr(65) # A
chr(98) # bord©
对表示单个 Unicode 字符的字符串返回代表它 Unicode 码点的整数。
ord(A) # 65
ord(b) # 98hex(x)
将整数转换为以“0x”为前缀的小写十六进制字符串。
hex(1) # 0x1
hex(10) # 0xa
hex(15) # 0xf
hex(16) # 0x10enumerate(iterable, start0)
返回一个枚举对象。iterable 必须是一个序列或 iterator或其他支持迭代的对象。
data [1, 3, 4, 5, 6]for index, row in enumerate(data):print(index, row)
0 1
1 3
2 4
3 5
4 6# index索引从2开始
for index, row in enumerate(data, 2):print(index, row)2 1
3 3
4 4
5 5
6 6eval(expression[, globals[, locals]])
返回值为表达式_expression_求值的结果
a 1
b 2
eval(ab) # 3exec(object[, globals[, locals]])
这个函数支持动态执行 Python 代码。object 必须是字符串或者代码对象。如果是字符串那么该字符串将被解析为一系列 Python 语句并执行除非发生语法错误。如果是代码对象它将被直接执行。
funcstr
def add(a, b):return abexec(funcstr) # 将字符串定义的函数解析为代码并加载到内存中
res eval(add(1,3)) # 调用函数
print(res) # 4action x*x
func1 fmul lambda x:{action}
exec(func1)
res eval(mul(3))
print(res) # 9iter(object[, sentinel])
接受一个可迭代的对象作为参数然后返回该可迭代对象的迭代器。
iter([1,2,3]) # list_iterator at 0x5af7e08
iter((1,2,3)) # tuple_iterator at 0x5af7288for i in iter([1,2,3]):print(i)
1
2
3next(iterator[, default])
接受一个迭代器作为参数用于从可迭代对象或迭代器中获取下一个元素如果没有更多的元素可供迭代next() 函数会引发 StopIteration 异常或者可以指定一个默认值作为参数以在迭代结束时返回。
data iter([1,2,3])next(data)
1next(data)
2next(data)
3next(data)
StopIterationzip(*iterables)
返回一个元组的迭代器其中的第 i 个元组包含来自每个参数序列或可迭代对象的第 i 个元素。 当所输入可迭代对象中最短的一个被耗尽时迭代器将停止迭代。
d1 [1, 2, 3]
d2 [alic, bob, liuh]for no, name in zip(d1, d2):print(no, name)1 alic
2 bob
3 liuhd1 [1, 2, 3]
d2 [alic, bob, liuh, zhange]# 取最短的
for no, name in zip(d1, d2):print(no, name)1 alic
2 bob
3 liuhd1 [1, 2, 3]
d2 [alic, bob, liuh, zhange]
d3 [172, 180, 176]# 多组同时遍历
for no, name, height in zip(d1, d2, d3):print(no, name, height)1 alic 172
2 bob 180
3 liuh 176