天天看点

python 01列表异或_python 的几个小知识点

异或运算

位运算中的异或运算 XOR有以下几个特点:

一个数和 0 做 XOR 运算等于本身:a⊕0 = a

一个数和其本身做 XOR 运算等于 0:a⊕a = 0

XOR 运算满足交换律和结合律:a⊕b⊕a = (a⊕a)⊕b = 0⊕b = b

补充

:python整数类型的按位运算

python 01列表异或_python 的几个小知识点

注释:

  1. 负的移位数是非法的,会导致引发

    ValueError

  2. 左移 n 位等价于不带溢出检测地乘以

    pow(2,

    n)

  3. 右移 n 位等价于不带溢出检测地除以

    pow(2,

    n)

  4. 使用带有至少一个额外符号扩展位的有限个二进制补码表示(有效位宽度为

    1

    +

    max(x.bit_length(),

    y.bit_length())

    或以上)执行这些计算就足以获得相当于有无数个符号位时的同样结果。

reduce函数

reduce函数是聚合操作中最基础的归纳函数,reduce函数会将多个数据按照指定的算法累积叠加起来,最后输出一个数据。

基本语法:

reduce(函数, 可迭代的对象, 初始化的值)

参数说明:

函数:这是一个聚合操作函数,这个函数需要有两个参数。

可迭代的对象:例如列表、集合等可以迭代操作的对象。

初始化的值:可选参数,是否要设置一个最初的值。

python 01列表异或_python 的几个小知识点
from functools import reduce
arr=[2,4,8]

result = reduce(lambda x, y: x*y,arr)
print(result)           

输出:64。 其实就是2

*

4*8=64

#输出1000以内的斐波那契数列,并算出其和

from functools import reduce

fibonacci = []

a=0
b=1
while b<1000:
    fibonacci.append(b)
    a,b = b, a+b
print(fibonacci)

r=reduce(lambda a,b:a+b, fibonacci)
print(r)           

输出:

[1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987]

2583

map函数

map函数的语法:

map(函数, 可迭代的对象)
python 01列表异或_python 的几个小知识点
def f(x):
    return x*x
r = map(f, [1,2,3,4,5,6,7,8,9])
list(r)           

输出:[1, 4, 9, 16, 25, 36, 49, 64, 81]

filter函数

filter函数与map函数在用法上非常的类似,同样是接收两个参数。语法如下:

filter(函数, 可迭代的对象)

他们的区别是map函数返回的是一个列表,而filter函数在第一个参数,也就是传入的函数中要编写一个过滤条件,如果过滤条件为True,则这个元素保留,如果过滤条件为False,则这个元素被过滤掉。

python 01列表异或_python 的几个小知识点
#找奇数
def is_odd(n):
    return n % 2 == 1

list(filter(is_odd, [1, 2, 4, 5, 6, 9, 10, 15]))           

输出:[1, 5, 9, 15]

开始读python文档了:),每天争取发点零散小知识点。

继续阅读