Python提高(1)

一、python中的一些方法

1、enumerate()方法
mylist = ["a","b","c"]
for i in range(len(mylist)):
	print(value[i])
#可以用enumerate方法改写
enumerate():
mylist = ["a","b","c"]
for i,value in enumerate(mylist):
	print(i,value)

output:
0 a
1 b
2 c
2、fromkeys()方法:

以前创建字典总是希望有一个默认字典
fromkeys(): 接受tuple和value, 之后会变成一个默认字典

mydict = {}.fromkeys(("1","2","3"),0)
print(mydict)
3、dict()构造方法

dict(zip((‘x’, ‘y’), (1, 2)))

dict(zip(('x', 'y'), (1, 2)))
dict([[1,2],[3,4]])
4、items()方法
mydict = dict([(1,2),(3,4)])
print(mydict.items())

二、python中的函数(进阶)

1、可变长参数

def func(a , *wargs, **kwargs):
   print(wargs)
   print(kwargs)
#wargs是元组参数,kwargs是字典参数,这两个东西的数据类型
#是元组和字典
func(1,2,3,4,5,aa=1,b=2,c=3)
def func(a , *wargs, **kwargs):
   print(wargs)
   print(kwargs)
#wargs是元组参数,kwargs是字典参数,这两个东西的数据类型
#是元组和字典,下面的写法表示元组和字典解包
func(1,*(3,4,5),**{'aa' : 2, 'bb':3})

2、lambda表达式

lambda表达式是一个匿名函数,就是暂时使用的小函数,本身是一个函数对象(函数指针),所以lambda表达式可以传给函数指针变量参与运算。例如:

lambda x : x[0] == def func(x): return x[0]
lambda x,y=3: x+y == def func(x, y=3): return x+y;

这些个匿名函数一般很短小,生成后作为一个函数对象来发挥作用,利用这个,我们可以批量地生成函数

例如以下场景:

import tkinter
top = tkinter.Tk()
func_list = [lambda n=i : print(n) for i in range(0, 10)]
B = [tkinter.Button(top, text=str(i), command = func_list[i]) for i in range(0, 10)]
for B_elem in B:
   B_elem.pack()
top.mainloop()

import tkinter
top = tkinter.Tk()
func_list = [lambda  : print(i) for i in range(0, 10)] 
#**i 相对于lambda表达式来说,是一个全局变量,一改就都改了,所以必须设置成上面那样,把i作为一个默认参数传入方可**
B = [tkinter.Button(top, text=str(i), command = func_list[i]) for i in range(0, 10)]
for B_elem in B:
   B_elem.pack()
top.mainloop()
#写计算器的解决方法

lambda表达式注意的地方:
主要是作用域问题:看如下例子

z = 5
x = 10
func = lambda x = x : print(x+z)
# 把现在外部的x置为一个默认的参数
func()
x = 11
func()

15
15

z = 5
x = 10
func = lambda : print(x+z)
# 把现在外部的x置为一个默认的参数
func()
x = 11
func()
15
16
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值