一、逆序迭代
#正序:
range(4)
#输出:0,1,2,3
【#逆序方法一:】
reversed(range(4))
输出:3,2,1,0
【#逆序方法二:】
range(3,-1,-1)
#输出:3,2,1,0
【#逆序方法三:列表逆序切片法】
range(4)[::-1]
输出:3,2,1,0
二、两个列表,对应位置相乘
【方法1:】
list1=[1,2,3]
list2=[4,5,6]
list3=list(map(lambda x:x[0]*x[1],list(zip(a1,a2)) ))
输出:
[4,10,18]
【方法2:】
import numpy as np
list3=list(np.multiply(np.array(list1),np.array(list2)))
输出:
[4,10,18]
三、python中可变对象作为函数的参数时,是地址传递;不可变对象,作为参数,是值传递,即不共用同一内存单元。
不可变对象:数字,字符串,元组;
可变对象:列表,字典,自定义类的实例。
举个例子:
# class ListNode(object):
# def __init__(self, x):
# self.val = x
# self.next = None
a=ListNode(0)
b=a
print(id(a))
print(id(b))
输出:
140392472073496
140392472073496
可见这两个变量指向同一内存单元,python是基于值的管理方式,当给变量赋值的时候,系统会为这个值分配内存空间,然后让这个变量指向这个值,当改变变量的值时,系统会为这个新的值分配另一个内存空间,然后还是让这个变量指向这个新值。
也就是说,C语言中变量变的是内存空间中的值,不变的是地址;而在Python中,变量变的是地址,不变的是内存空间中的值。