基于Python的数据挖掘与分析(一)

PS:本文旨在总结本人在Python学习过程中易混淆的语法知识。文章写得很琐碎,请见谅。

1.zip()函数

#Zip函数遍历两个列表
result=[]
num1,num2=[1,2,3],[4,5,6]
for f1,f2 in zip(num1,num2):
    print(f1,f2)
    results.append(f1+f2)
print(results)

>>1 4
>>2 5
>>3 6
>>[5, 7, 9]

#遍历多个列表
result=[]
num1,num2,num3=[1,2,3],[4,5,6],[7,8,9]
for f1,f2,f3 in zip(num1,num2,num3):
    print(f1,f2,f3)
    results.append(f1+f2+f3)
print(results)

需进行多次结构相同而值不同列表的遍历时,可用zip()函数。

而与zip()函数对应的是enumerate()函数,它也是遍历迭代,只不过它是输出索引和对应的元素。

for index, value in enumerate([7, 4, 2, 5]):
    print('索引是{}, 对应的元素是{}'.format(index, value))

>>索引是0, 对应的元素是7
>>索引是1, 对应的元素是4
>>索引是2, 对应的元素是2
>>索引是3, 对应的元素是5

2.排序方法sort()与sorted()

sort是应用在list上的方法,sorted可以对所有可迭代的对象进行排序操作。

list的sort方法返回的是对已存在的列表操作后的结果,而内建函数sorted方法返回的是一个新的list,而不是在原来的基础上进行的操作。

import copy
l=[1,2,3,6,3,5,3]
ll=copy.deepcopy(l)
l.sort()
print(l)
print(sorted(ll))

>>[1, 2, 3, 3, 3, 5, 6]
>>[1, 2, 3, 3, 3, 5, 6]

sorted(iterable,cmp=None,key=None,reverse=False)

sort(cmp=None,key=None,reverse=False)

(PS:key按照什么排序;reverse是否倒序,默认False是升序)

lst3=[('a',1),('b',0),('f',8),('d',3)]
sorted(lst3,key=lambda x:x[1])

>>[('b', 0), ('a', 1), ('d', 3), ('f', 8)]

3.lambda函数

表达式:lambda argument_list : expersion

优点:简单方便,一行表达

缺点:不能写出逻辑复杂的方法

#用def定义一个函数
def f(x):
    results= x**2
    return results
print(f(4))

>>16

#lambda 的表达形式
g=lambda x : x**2
print(g(4))

>>16

4.map遍历

##map结合lambda函数,会遍历给定的迭代对象
nums1=[11,22,33]
nums2=[1,2,3]
nums3=[3,3,3]
results=map(lambda a,b,c:a+b+c,nums1,nums2,nums3)
results=list(results)
print(results)

>>[15, 27, 39]

map()后续应该会出专门的归纳总结。

5.fliter()

##fliter()对于序列中的元素进行筛选,最终获取符合条件的序列
li=[11,22,33]
new_list=filter(lambda a :a>22,li)
new_list=list(new_list)
print(new_list)

6.class类

在去年接触Python时就注意到这个概念,只不过一直没有去探究它,现在终于有时间来学一学了。类实际上是对相似函数的一个封装,比如要去了解一个人的学习成绩,需要知道他的语文、数学、英语等各科成绩。

class Grades:
    #注意,这里的self是必须要带的,有@classmethod指明的除外
    def get_math(self,math):
        math_text=f'My score in math is {math}'
        return math_text
    
    def get_English(self,English):
        English_text=f'My score in English is {English}'
        return English_text
#创建一个实例化的类
grades=Grades()
#调用实例里有的方法
math=grades.get_math(98)
English=grades.get_English(94)
print(f'{math},{English}')

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值