首页 > 其他 > 详细

自定义函数

时间:2020-12-20 23:20:43      阅读:47      评论:0      收藏:0      [点我收藏+]
自定义函数的作用
? 为了定制化的需求
? 为了降低代码的重复编写
定义
匿名函数,可以用lambda关键字定义。通过lambda构造的函数可以没有名称,最大特点是“一气呵成”,即在自定义匿名函数时,所有代码可在一行内完成。
 
语法介绍
lambda parameters : function_expression
lambda为匿名函数的关键起始词
parameters是函数的形参,多个参数之间用英文状态的逗号隔开
function_expression为具体的函数体
# 统计列表中每个元素的频次
list6 = [A,A,B,A,A,B,C,B,C,B,B,D,C]
# 构建空字典,用于频次统计数据的存储
dict3 = {}
# 循环计算
for i in set(list6):
 dict3[i] = list6.count(i)
print(dict3)
# 取出字典中的键值对
key_value = list(dict3.items())
print(key_value)
# 列表排序
key_value.sort()
print(key_value)
# 按频次高低排序
key_value.sort(key = lambda x : x[1], reverse=True)
print(key_value)

 

自定义函数
使用场景
虽然匿名函数很灵活,会在很多代码中遇到,但它的最大特点也是它的短板,即无法通过lambda函数构造一个多行而复杂的函数。为了弥补其缺陷,Python提供了另一个关键字def,可以构造逻辑复杂的自定义函数。
def function_name(parameters):
function_expression
return(result)
def是define单词的缩写,为自定义函数的关键词
function_name为自定义的函数名称
parameters为自定义函数的形参,需要放在圆括号内
function_expression为具体的函数体
return用于返回函数的计算结果
import random

def guess_number(Min,Max):
    number=random.randint(Min,Max)

    while True:
        guess=int(input(请在{}和{}之间输入一个整数:.format(Min,Max)))#input会将输入的数都以字符串形式传递给变量
        if guess>number:
            print(偏大)
            Max=guess
        elif guess<number:
            print(偏小)
        else:
            print(正确!)
            break
    
    
#构造自定义函数,用于多数据源的读取与合并
1、初级阶段,适用于目录下文件命名非常规则的情况 import pandas
as pd res=[] for i in range(1,4): data=pd.read_csv(rD:\pylearn\datas{}.txt.format(i)) res.append(data) res 返回结果,是列表 [ id name income 0 3 lucy 2000 1 4 guy 10000, id name income 0 1 tom 20000 1 2 jm 1000, id name income 0 5 shar 25000 1 6 kiit 28000]


pd.concat(res)#实现数据的合并

返回结果:

idnameincome
0 3 lucy 2000
1 4 guy 10000
0 1 tom 20000
1 2 jm 1000
0 5 shar 25000
1 6 kiit 28000
2.进阶阶段,适用于目录下有非规则命名
import os#操作系统相关的包 os.listdir(r
D:\pylearn)#罗列出此目录下所有的文件 返回结果: [datas1.txt, datas2.txt, datas3.txt] import os#操作系统相关的包 path=rD:\pylearn filenames=os.listdir(path)#罗列出此目录下所有的文件 res=[] for file in filenames: data=pd.read_csv(path+\\+file) res.append(data) pd.concat(res) 返回结果:
 idnameincome
0 3 lucy 2000
1 4 guy 10000
0 1 tom 20000
1 2 jm 1000
0 5 shar 25000
1 6 kiit 28000
 

 

自定义函数

原文:https://www.cnblogs.com/xiuyo/p/14165720.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!