Python中常见的函数
get()函数
get函数返回字典中指定键的值 d.get(key,dafult=None)
key – 字典中要查找的键。
default – 如果指定键的值不存在时,返回该默认值值
sorted()函数,sort()函数
sort函数用于对数组的元素进行排序,并返回数组,有三个参数cmp 、reverse、key
1.数字序列
>>> L = [5,2,3,1,4]
>>> L
[5, 2, 3, 1, 4]
>>> L.sort()
> L
[1, 2, 3, 4, 5]
>>> L.sort(reverse=True)
>>> L
[5, 4, 3, 2, 1]
2.字符串序列
>>> StrList = [‘Smooth’, ‘is’, ‘fast’, ‘Fast’, ‘is’, ‘smooth’]
>>> StrList
[‘Smooth’, ‘is’, ‘fast’, ‘Fast’, ‘is’, ‘smooth’]
# 2.1一般字典序排列
>>> StrList.sort()
>>> StrList
[‘Fast’, ‘Smooth’, ‘fast’, ‘is’, ‘is’, ‘smooth’]
# 2.2忽略大小写
>>> StrList.sort(key = str.lower)
>>> StrList
[‘Fast’, ‘fast’, ‘is’, ‘is’, ‘Smooth’, ‘smooth’]
# 2.3按照字符串长度排序
>>> StrList.sort(key = len)
>>> StrList
[‘is’, ‘is’, ‘Fast’, ‘fast’, ‘Smooth’, ‘smooth’]
>>> StrList.sort(key = len, reverse = True)
>>> StrList
[‘Smooth’, ‘smooth’, ‘Fast’, ‘fast’, ‘is’, ‘is’]
sorted
sorted(L)返回一个排序后的L,不改变原始的L;L.sort()是对原始的L进行操作,调用后原始的L会改变,没有返回值。
sorted(iterable, key=None, reverse=False) –> new sorted list
1,list与tuple排序方法与list.sort()大体一致,只不过sorted()不改变原结构
#list
>>> Num
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> a = sorted(Num, reverse=True)
>>> a
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
>>> Num
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>>
#tuple
>>> Num
(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
>>> b = sorted(Num, reverse=True)
>>> b
[15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
>>> Num
(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
2,sorted函数按key值对字典排序,直接使用sorted(d.keys())就能按key值对字典排序,这里是按照顺序对key值排序的,如果想按照倒序排序的话,则只要将reverse置为true即可。
a = {"a":2, "b":3, "c":0}
b = sorted(a.values())
c = sorted(a.keys())
print(b, c)#结果均为列表
sorted函数按value值对字典排序
要对字典的value排序则需要用到key参数,在这里主要提供一种使用lambda表达式的方法
a = {"a":2, "b":3, "c":0}
b = sorted(a.items(), key= lambda x:x[1], reverse=True)#reverse=True降序
print(b)
print(dict(b))#b为元组元素组成的列表。重新转换成字典。
Operator 模块函数
由于 key 参数比较常用,所以 Python 内置了一些用来简单、快速生成相关函数的方法, operator 模块提供了 itemgetter,attrgetter
itemgetter(item, …) –> itemgetter object,就是按照索引顺序返回访问第i个对象的函数指针,按对象属性排序。
#key=operator.itemgetter(1)根据字典的值进行排序
#key=operator.itemgetter(0)根据字典的键进行排序
#reverse降序排序字典
zeros()函数
np.zeros(5)
array([ 0., 0., 0., 0., 0.])
np.zeros((5,), dtype=np.int)
array([0, 0, 0, 0, 0])
np.zeros((2, 1))
array([[ 0.], [ 0.]])
s = (2,2)
np.zeros(s)
array([[ 0., 0.], [ 0., 0.]])
s.strip(rm)
当rm空时,默认删除空白符(包括’\n’,’\r’,’\t’,’ ')
s.split(str="",num=string,cout(str))
将字符串根据’\t’分隔符进行切片
截取所有的回车符,然后使用tap字符\t将整行数据分割成一个元素列表。
round()
round函数用于对浮点数的四舍五入值
tile()
tile函数用于重复
a=tile([0],(5,2))
array([0,0,0,0,0]
[0,0,0,0,0])
shape()
data.shape[0]取行数
data.shape[1]取列数
sum()
sum(axis=1)按行相加
sum(axis=0)按列相加
a= np.array([0,1,2]
[2,3,4]
[0,1,1])
a.sum(axis=0)
array([2,5,7])
argsort()
将x中的元素从小到大排序,输出索引值index
x=np.array(-1,3,2,5,-2)
x.argsort()
array([4,0,2,1,3])
np.dot()
np.dot(x,y)
若x,y为一维数组,则为两者的内积
若x,y为矩阵,则为矩阵积
np.random.normal()
numpy.random.normal(loc=0.0, scale=1.0, size=None)为高斯分布
loc为概率分布均值
scale为概率分布标准差
set
set中数据不能重复,会自动删除重复
nums=set([1,2,3,3,4,,5,5])
print len(nums)
5
a = map(lambda x: x**3, [1, 2, 3])
list(a)
a=[1,8,27]
copy .copy copy.deepcopy
import copy
a = [1, 2, 3, 4, ['a', 'b']]
b = a
c = copy.copy(a)
d = copy.deepcopy(a)
a.append(5)
a[4].append('c')
a=[1, 2, 3, 4, [‘a’, ‘b’,‘c’],5]
b=[1, 2, 3, 4, [‘a’, ‘b’,‘c’],5]
c=[1, 2, 3, 4, [‘a’, ‘b’,‘c’]]
d=[1, 2, 3, 4, [‘a’, ‘b’]]
copy.copy(a) 浅复制,只会拷贝父对象, 不会拷贝父对象中的子对象,所以若a的子对象变则c 变,但是父对象变c不会变
d = copy.deepcopy(a) 深拷贝,完全拷贝,完全独立于原对象,a变也不变
a.append(5) 改变父对象
a[4].append(‘c’) 改变父对象中的 [‘a’, ‘b’]子对象