python常用的函数

一、python内置函数

1、filter 和list
一个列表:
fruits = ['orange', 'peach', 'durian', 'watermelon']
print(fruits[slice(1, 3)])    --最后的结果: ['peach', 'durian']
# slice(1, 3)相当于[1:3]  ,也可以# slice(1, 3,2)相当于[1:3:2]

定义一个筛选函数:
def myfilter(mystr):
    return len(mystr) == 6
    
filter函数:
fruits2 = list(filter(myfilter, fruits))
print(fruits2)   --最后的结果 ['orange', 'durian']
2、分片和索引

Python中使用索引来访问序列中的某一个元素,如果要访问序列中某一定范围内的元素,可以使用分片来完成。
分片是list里面常见的操作,使用方法:list[start:End:step],可以代替for 循环的一种简单操作。
从字符串到list,再到数组都是可以使用索引和分片的。

  • list
    list的下标从0开始的,单个数据的话用索引标识,
    索引: list[0] 就是取第一个元素,list[-1]就是取列表的最后一个元素。
    分片:list[start:end],也可以使用list(start,end)来表示分片,也可以有步长的限定。
  • 嵌套list
goodslist=[['Iphone', 5800], ['Mac Pro', 12000], ['Bike', 800], ['Alex Python', 89], ['Starbuck Latte', 30], ['Cap', 45], ['Air conditioning', 3000], ['Ipad', 4200]]
[g[0] for g in goodslist] #输出结果是第一列数据

  • DataFrame
dic = { 'lucy':[100,19,87,90,11,56], 'tom':[89,99,93,56,80,100]}
import pandas as pd
df = pd.DataFrame(dic,index=list('ABCDEF'))
得到lucy的学习成绩: df['lucy']
得到lucy和tom的两个人的学习成绩: df[['lucy','tom']] 
# 另外索引是可以进行嵌套使用的,也就是索引后可以再次进行索引
得到lucy的A和B科目学习成绩: df['lucy'][0:2]

二、函数

1、# 参数默认值

# 函数定义的时候可以哟默认值
def  f1(a,b,c=1):    #定义这中函数的时候,注意一定把有默认值得参数放在最后,不然会报错
	 return a+b+c
print(f1(0,2))      #可以传和函数定义的参数个数不同的参数。
print(f1(c=0,b=2,a=3))   #也可以点颠倒顺序

2、可变函数(参数得个数不限定)

def f2(*args):
    sum = 0 
    for num in args:
        sum += num
    return sum
 print((1,3,4,5))

3、关键字函数

如果关键字函数传的是字典格式的数据,那么一定要和函数之前**的个数保持一致。
如果传的是key=value格式的参数,那么直接使用函数,不用管定义的参数前面的**的个数。

三、python技巧

1、enumerate(数组组装成字典)

mapping=[]
s_list=['a','b','c']
for k,v in enumerate(s_list):
	mapping[v]=k
newmap={k:v for v,k in mapping.items() }

dict_new2= dict(zip(dict_ori.values(), dict_ori.keys()))

2、列表推导式

some_tuples	=	[(1,	2,	3),	(4,	5,	6),	(7,	8,	9)]
result=set[j for x in some_tuples for j in x]
	

3、多层嵌套的扁平化
1)对于知道嵌套层数以及层数一致的可以使用推导式也能:
[i for u in test_list for i in u]

2)一般的嵌套数组数据可以采用递归取数:

test_list=[[[1,2],[3,4]],[[1,5]]]
result=[]
def take_out():
	for i in items:
		if isinstance(i,int):
			result.append(i)
		else:
			take_out(i)
take_out(test_list)

4、map函数和for循环

import re
class cleanStr():
    def test_sub(value):
        return re.sub('[?!#]','',value)
    
    def map_test(f,s):
        result=[]
        for i in map(f,s):
            result.append(i)
        return result
    
    def clean_str(ops,states):
        count=0
        while  count<len(ops):
            states=map_test(ops[count],states)
            count=count+1
        return states

clean_ops=[str.strip,str.title,test_sub]
states=['  Alabama ','Georgia! ','Georgia','georgia']        
cleanStr.clean_str(clean_ops,states) 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值