python中的基础坑

v = [lambda :x  for x in range(10)]
print(v)    #[lambda :x,lambda :x....]10个匿名函数
print(v[0]) #lambda :x
print(v[0]())   #9

  

v = (lambda :x for x in range(10))
print(v)		#生成器
# print(v[0])	    #报错:生成器不能索引取值
# print(v[0]())   #报错:生成器不能索引取值
print(next(v))	#lambda :x
print(next(v)()) #1

  

def extendList(val, list=[]):
    list.append(val)
    return list


list1 = extendList(10)
list2 = extendList(123, [])
list3 = extendList('a')

print('list1=%s' % list1)  # list1=[10,'a']
print('list2=%s' % list2)  # list2=[123]
print('list3=%s' % list3)  # list3=[10,'a']

  

def add(a, b):
    return a + b


def test():
    for i in range(4):
        yield i


g = test()  # 生成器

for n in [2, 10]:
    g = (add(n, i) for i in g)# 生成器
    
print(list(g))#[20,21,22,13]
#n=2:
        # 循环体执行时i对应的值 (0,1,2,3)
        # 循环体执行之后:g类似于[add(n, 0),add(n, 1),add(n, 2),add(n, 3)]
    #n=10时:
        # 循环体执行时i 的值 (10,11,12,13)-----对n=2循环之后的g进行取值
        # 循环体执行之后:list(g)=(add(n, 10),add(n, 11),add(n, 12),add(n, 13))

  

li = [7,-8,5,4,0,-2,-5]
print(sorted(li,key=lambda x:(x<0,abs(x))))

  

print(5/2)
print(5.0/2)
print(5/2.0)
print(5.0/2.0)
print(5//2)
print(5.0//2)
print(5//2.0)
print(5.0//2.0)

#python3中   2.5     2.5     2.5     2.5     2   2.0     2.0     2.0
#python2中   2       2.5     2.5     2.5     2   2.0     2.0     2.0

  

dic={x:y for x in ['Male','Female'] for y in ['Red','Black']}
print(dic)
# {'Male':'Black','Female':'Black'}

li=[(x,y) for x in ['Male','Female'] for y in ['Red','Black']]
print(li)
#[('Male','Red'),('Male','Black'),('Female','Red'),('Female','Black')]

  

li=[[]]*5           #[[], [], [], [], []]
li[0].append(1)     #[[1], [1], [1], [1], [1]]
li[3].append(0)     #[[1, 0], [1, 0], [1, 0], [1, 0], [1, 0]]
li.append(8)        #[[1, 0], [1, 0], [1, 0], [1, 0], [1, 0],8]
print(li)

  

t=((1,2))*5         #(1, 2, 1, 2, 1, 2, 1, 2, 1, 2)
t1=((1,2),)*5       #((1, 2), (1, 2), (1, 2), (1, 2), (1, 2))
print(t)
print(t1)

  

for x in range(5):
    pass
print(x)      #4

def f():
    x = 0
    for i in range(5):
        x += i
f()
print(x)

  

猜你喜欢

转载自www.cnblogs.com/open-yang/p/11425593.html