目录
1、lambda函数
匿名函数,通常在需要一个函数又不想费神去命名一个函数的场合下使用
2、map(fuction,iterable,....)
- function -- 函数
- iterable -- 一个或多个序列
以序列中的每个元素调用function函数,返回每次function函数返回值成新列表
示例:
示例1:
def square(x):
return x**2
map(square,[1,2,3,4])
#[1,4,9,16]
#square函数调用时不需要加小括号
示例2(使用lambda匿名函数)
map(lambda x:x**2,[1,2,3,4])
#[1,4,9,16]
示例3(提供两个序列)
map(lambda x,y:x+y,[1,2,3,4],[2,3,4,5])
#[3,5,7,9]
3、列表取值
① a[start:end:step]
根据a=range(100),a[::3]=a[0:99:3]
② a[1..3] 指列表根据步长的取值,eg.a=[1,2,3,4,5,6] a[1..2]=[2,4,6]
③ a[2-3]=a[-1]
4、filter(筛选条件)
所保留的数据是满足筛选条件的数据
示例:
a=[1,2,3,4,5,6,7,8,9]
print(list(filter(lambda x:x%2==0,a)))
#[2,4,6,8]
result=filter(lambda x:x%2,[1,2,3,4,5])
print(list(result))
#[1,3,5]
(返回值为真的值,即若条件为函数,则返回结果值为1的值)
5、str1.find(str2,7)
从str1的 第7+1位 找 str2
6、dict.get(key,value)
查询字典中要查找的键,如果键值不存在,返回value(默认为None)
7、join()
'sep'.join(seq)
sep:分隔符
seq:要连接的元素序列,如:元组、列表、字符串、字典
示例:
print('\n'.join([1,2,3])
#\n是换行符
#输出结果:
#1
#2
#3
8、find()和index()
string.find(str,beg,end):beg和end指定范围,若str在string中,返回第一次出现的位置的索引值,否则返回-1
string.index(str,beg,end):index()跟find()方法应用,不过str不在string中会报错
9、_init_ () 和 _new_ () 的区别
_new_() 是一种静态方法,任务是创建实例 然后 返回该实例,所以是在创建实例之前被调用的
_init_() 是一种实例方法,是在实例创建完成后,设置实例属性的一些初始值,什么都不返回
10、insert()
list.insert(index,obj) -- index是指将对象obj插入到列表中的位置
11、set(list)
把列表转换成集合,会自动去除重复的值
nums=set([1,2,2,3,3,4,4,4])
print len(nums)
#4
列表为不可列散对象时,不能转换为集合,会报错
list=[1,2,'a',[1,2]]
set(list)
#报错
12、sort(list)
使用 sort() 进行排序会生成新的序列
13、.strip()、.rstrip()
str.strip('ab') -- 删除str中所包含的a、b元素
str='ababacabb'
print(str.strip('ab')
#c
str.strip() -- 删除字符串的前后空格
str.rstrip() -- 删除字符串末尾的空格
14、divmod()
将除数运算和取余运算结合在一起,返回一个商和余数的值(a//b,a%b)
15、内置变量 _name_
每个模块都有一个内置变量 _name_
- 如果模块是被导入的,_name_的值为模块名
- 如果模块是被直接执行的,_name_的值为'_mian_'
#print_func.py的代码如下
print('hello world!')
print('_name_ value:',_name)
def main():
print('This message is from main function')
if _name_=='_mian_':
mian()
#print_mudule.py代码如下:
improt print_func
print('Done!')
#执行print_mudule代码,执行结果为:
#hello world!
_name_value: print_func Done!
class person():
def _init_(self):
pass
def getAge(self):
print _name_
p=Person()
p.getAge()
#_mian
16、replace()
str='i like python and java'
print(str.replace('a','*',2))
#i like python *nd j*va'
#替换不超过2次
17、random.random()
生成0-1的随机浮点数
7、其他
1)列表
① 列表索引list[10] 越界会报错,list[10:11] 切片不会
② [['1']]*3=[['1'],['1'],['1']] ['1']*3=['1','1','1']
③ 列表相加,a=[1,2,3] , b=[4,5,6] , a+b=[1,2,3,4,5,6]
2) pop()
- 列表中,不放置索引,默认删除末尾值
- 字典中,pop(key)中必须放置索引,否则会报错
3)集合不能索引取值,会报错
- 列表[1,2,3]
- 元组(1,2,3)
- 集合{1,2,3}
- 字典{1:'one',2:'two',3:'three'}
4)元组的计算
truple=(1,2,3)
print(truple*2)#(1,2,3,1,2,3)
#元组是不可变序列,但是会返回一个新的元组
执行 ②时会抛出异常,最终tup的值为(1,2,[3,4,5,6])
tup=(1,2,[3,4])
try :
tup[2]+=[5,6]
except :
print(tup)
#改成tup[2].extend([5,6])就不会抛出异常
5)Python变量作用域的查找顺序
局部作用域 Local > 外部嵌套作用域 E > 全局作用域 Gobal > 内置模块作用域 B