1. range(a,b),生成a到b-1的自然数
2. sum()求和函数
例:一行代码实现1–100之和
print(sum(range(1,101)))
3.map()
map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回
r = map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])
list(r)
例:列表[1,2,3,4,5],请使用map()函数输出[1,4,9,16,25],并使用列表推导式提取出大于10的数,最终输出[16,25]
#列表推导式就是列表生成式
L=[1,2,3,4,5]
def f(x):
return x*x
L1=list(map(f,L))
print(L1)
print([x for x in L1 if x>=10])
4. random()
随机生成一个整数:random.randint(a,b),一个区间内的整数
生成一个0-1随机小数:random.random(),括号中不传参
随即生成n个随即小数:np.random.randn(n)
例:python中生成随机整数、随机小数、0–1之间小数方法
import random
import numpy as np
print(random.randint(0,10))
print(random.random())
print(np.random.randn(3))
输出:
0
0.7745266048703457
[-0.16120184 2.64041808 0.15368552]
例:生成0-100的随机数
import random
print(random.randint(0,100))#随机整数
print(100*random.random())#random.random()生成0-1之间的随机小数,所以乘以100
5. assert
例:python中断言方法举例
d={'a':1}
assert d['a']==2
输出:
Traceback (most recent call last):
File "d:/codecodecode/test/test.py", line 159, in <module>
assert d['a']==2
AssertionError
6.sort()
例:s = “ajldjlajfdljfddd”,去重并从小到大排序输出"adfjl"
s = "ajldjlajfdljfddd"
l=list(set(s))
print(l)
l.sort(reverse=False)
SS=''.join(l)
print(SS)
输出:
['a', 'l', 'd', 'f', 'j']
adfjl
7. lambda
lambda函数也叫匿名函数
例:用lambda函数实现两个数相乘
f=lambda x,y:x*y
print(f(2,3))
例:对list排序foo = [-5,8,0,4,9,-4,-20,-2,8,2,-4],使用lambda函数从小到大排序
foo = [-5,8,0,4,9,-4,-20,-2,8,2,-4]
g=lambda L:sorted(L)
print(g(foo))
#法二
a=sorted(foo,key=lambda x:x)
print(a)
例:使用lambda函数对list排序foo = [-5,8,0,4,9,-4,-20,-2,8,2,-4],输出结果为
[0,2,4,8,8,9,-2,-4,-4,-5,-20],正数从小到大,负数从大到小
foo = [-5,8,0,4,9,-4,-20,-2,8,2,-4]
f0=sorted(foo,key=lambda x:(x<0,abs(x)))
print(f0)
8. Counter
Counter是一个继承了字典的类(Counter(dict))
有关字典的相关方法也一并继承过来。
例:利用collections库的Counter方法统计字符串每个单词出现的次数"kjalfj;ldsjafl;hdsllfdhg;lahfbl;hl;ahlf;h"
from collections import Counter
c=Counter("kjalfj;ldsjafl;hdsllfdhg;lahfbl;hl;ahlf;h")
print(c)
输出:
Counter({'l': 9, ';': 6, 'h': 6, 'f': 5, 'a': 4, 'j': 3, 'd': 3, 's': 2, 'k': 1, 'g': 1, 'b': 1})
9. filter
接收一个函数和一个序列。把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素
list(filter(is_odd, [1, 2, 4, 5, 6, 9, 10, 15]))
例:filter方法求出列表所有奇数并构造新列表
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
b=list(filter(lambda x:x%2==1,a))
print(b)
输出:
[1, 3, 5, 7, 9]
- datetime
例:log日志中,我们需要用时间戳记录error,warning等的发生时间,请用datetime模块打印当前时间戳 “2018-04-01 11:38:54”
#strftime 方法来格式化日期
import time
lt=time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())
print(lt)
11.raise异常
例:写一段自定义异常代码
#raise自定义异常
#捕捉异常可以使用try/except语句。
def f(i):
try:
if i>3:
raise Exception("i is supposed <=3")
return i+1
except Exception as e:#输出Exception的内容
print(e)
f(4)
输出:
i is supposed <=3
参数检查
if not isinstance(x, (int, float)):
raise TypeError('bad operand type')#只允许整数和浮点数
- join
例:x=“abc”,y=“def”,z=[“d”,“e”,“f”],分别求出x.join(y)和x.join(z)返回的结果
x="abc"
y="def"
z=["d","e","f"]
print(x.join(y))
print(x.join(z))
#都是dabceabcf
#join()括号里面的是可迭代对象,x插入可迭代对象中间,形成字符串
13.try except else finally
try - except 捕获程序在执行时遇到的异常情况
1)先执行try代码块,直到发现了错误,不再执行异常之后的代码
2)执行except代码块。
try…except…else没有捕获到异常,执行else语句
try…except…finally不管是否捕获到异常,都执行finally语句
例:举例说明异常模块中try except else finally的相关意义
try:
a=b
print(a)
except:
print("Error")
14.zip()
zip([iterable, …])
它接受一系列可迭代的对象作为参数,将对象中对应的元素打包成一个个tuple(元组)
然后返回由这些tuples组成的list(列表)。
若传入参数的长度不等,则返回list的长度和参数中长度最短的对象相同
例:举例说明zip()函数用法
a=[1,2,3,4,5]
b=(1,2,3,4)
d="zhang"
zz=zip(a,b,d)
print(list(zz))
#输出[(1, 1, 'z'), (2, 2, 'h'), (3, 3, 'a'), (4, 4, 'n')]
- 编码
例:a="hello"和b="你好"编码成bytes类型
a="hello"
b="你好"
c=a.encode('utf-8')
print(c)
print(b.encode('utf-8'))
输出:
b'hello'
b'\xe4\xbd\xa0\xe5\xa5\xbd'
- round()
例:保留两位小数.题目本身只有a="%.03f"%1.3335,让计算a的结果,为了扩充保留小数的思路,提供round方法(数值,保留位数)
a="%.03f"%1.3335
print(a,type(a))
b=round(float(a),1)
print(b)
b=round(float(a),2)
print(b)
# 输出1.333 <class 'str'>
# 1.3
# 1.33
- strip()
strip()方法,去除字符串开头或者结尾的空格a.strip()
lstrip()方法,去除字符串开头的空格a.lstrip()
rstrip()方法,去除字符串结尾的空格a.rstrip()
replace()方法,可以去除全部空格,a.replace(" ", “”)
例:a = " hehheh ",去除收尾空格
a = " hehheh "
a.rstrip()
print(a)
18. sort(),sorted(,key=,reverse=)
sorted():
sorted([36, 5, -12, 9, -21], key=abs)
key指定的函数将作用于list的每一个元素上,并根据key函数返回的结果进行排序。
默认情况下,对字符串排序,是按照ASCII的大小比较
反向排序sorted([‘bob’, ‘about’], key=str.lower, reverse=True)
区别:
list.sort()
print(list)
print(sorted(list))
sort没有返回值,但是会对列表的对象进行排序
sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。
list 的 sort 方法返回的是对已经存在的列表进行操作,无返回值,
而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。
例:列表嵌套字典的排序,分别根据年龄和姓名排序
foo = [{"name":"zs","age":19},{"name":"ll","age":54},
{"name":"wa","age":17},{"name":"df","age":23}]
f1=sorted(foo,key=lambda x:x["age"])#x是列表里的元素
print(f1)
f2=sorted(foo,key=lambda x:x["name"])
print(f2)
f0=sorted(foo,key=lambda x:(x["age"],x["name"]))
print(f0)
例:列表嵌套元组,分别按字母和数字排序
foo = [("zs",19),("ll",54),("wa",17),("df",23)]
f1=sorted(foo,key=lambda x:x[0])
print(f1)
f2=sorted(foo,key=lambda x:x[1])
print(f2)
例:列表嵌套列表排序,年龄数字相同怎么办?
foo = [[“zs”,19],[“ll”,54],[“wa”,17],[“df”,23],[“xf”,23]]
f1=sorted(foo,key=lambda x:x[0])
print(f1)
f2=sorted(foo,key=lambda x:(x[1],x[0]))
print(f2)
例:根据字符串长度排序,看排序是否灵活运用
l=["ab","abc","a","cdkj"]
b=sorted(l,key=lambda x:len(x))
print(b)
19.str.upper() str.lower()
例:字符串转化大小写
str="HHHuuu"
print(str.upper())
print(str.lower())
20. ‘sep’.join(seq)
参数说明
sep:分隔符。可以为空
seq:要连接的元素序列、字符串、元组、字典
上面的语法即:以sep作为分隔符,将seq所有的元素合并成一个新的字符串
返回值:返回一个以分隔符sep连接各个元素后生成的字符串
例:用两种方法去空格
str="hello world ha ha ha"
print(str.replace(" ",""))
s=str.split(" ")
print(s)
print("".join(s))
21.help(函数名)查看帮助
22.reduce
接收两个参数,reduce把结果继续和序列的下一个元素做累积计算
from functools import reduce
reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)