Python细节探讨

以下是使用Python以来的细节问题,会陆续记录和更新,欢迎交流👏👏

 

数据结构

  • List:python中常用的数据结构,支持追加(append)、移除(remove)、指定位置添加(extend)、与Set(集合)的区别在于:List支出元素重复,Set不允许元素重复
    • Remove语法慎用
      • 因为对于一个list进行index的Remove,移除一个元素之后,整个list的index也是会刷新的;举个例子,比如List Remove第一个元素,第二个元素的索引会变成0

  • [[]] * num(num是子列表数量) 构造空列表方法慎用
    • 通过上述方式构造列表,采用是浅拷贝方式,对于大列表中的任何一个子列表,使用append会导致所有的子列表追加相同内容
      • 深拷贝和浅拷贝的关系:浅拷贝可以理解为复制,被复制的列表发生变化时,尽管不操作复制列表,复制列表仍然发生变化。深拷贝可以理解为是开辟了一个新的内存空间,因此操作被复制对象,不影响深拷贝对象
      • 列表去重
        • List(Set(List)),即利用集合的无重复特性,转换之间进行驱虫,但是无法保证元素顺序与未去重的一致性,假设考虑到位置的重要性,建议重排,可以参考我之前的Python版本的几大排序算法
  • 与DataFrame格式之间转换
    • 首先需要构造成字典格式,然后利用pandas,生成Dataframe,代码段如下(针对DataFrame进行了Drop、filter之后,一定要使用dataframe.drop_setindex 重排index,否则利用某些索引会报错)

                                                                         

 

  • DataFrame格式
    • 读取方式
      import pandas as pd
      #header-表头 #split-行分隔符
      data = pd.read_csv("/Users/sanyin/test.txt",header=None,split='\t')
      #重置表头-假设仅有两列
      header = ['a','b']
      data.columns = header

       

    • 过滤

#找出a字段大于1的所有行
data = data[data['a']>1]
#找出a、b字段都大于1的所有行
data = data[data['a']>1 & data['b']>1]
  • DataFrame转格式
    • dataframe -> json
      • 假设变量data已经是DataFrame格式,看格式用内置type(data)方法,data.to_json(orients=record)
      • DataFrame转numpy,也是以data变量为例,data.as_matrix()
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值