zoukankan      html  css  js  c++  java
  • Python学习笔记:数据的处理

    上次的学习中有个split函数,照着head first Python上敲一遍代码:

    1 >>> with open('james.txt') as jaf:
    2     data=jaf.readline()
    3     james=data.strip().split(',')

    先看一下james.txt里面数据的格式

    第三行代码的意思就应该是先去除掉字符串中的空白符,再按照','进行分割,学习到这里感觉Python的语法是很灵活的....

    1 >>> print(james)
    2 ['2-34', '3:21', '2.34', '2.45', '3.01', '2:01', '2:01', '3:10', '2-22']

    数据的排序:

    在Python中对数据排序有两种方式:第一种,In-place sorting,原地排序,会更改原来数据的排序;第二种,Copied sorting,复制排序,新建一个副本,对副本排序,即不会更改原来数据的排序

    实战一下吧:

    1 >>> a=[1,4,6,3,5]
    2 >>> a1=sorted(a) # 复制排序
    3 >>> a1
    4 [1, 3, 4, 5, 6]
    1 >>> a.sort() # 原地排序

    创建一个函数统一时间格式:

    1 >>> def sanitize(time_string):
    2     if '-' in time_string:
    3         splitter='-'
    4     elif ':' in time_string:
    5         splitter=':'
    6     else:
    7         return(time_string)
    8     (mins,secs)=time_string.split(splitter)
    9     return(mins + '.' + secs)

    看看处理后的数据:

    1 >>> cl_james=[]
    2 >>> for each_t in james:
    
    3         cl_james.append(sanitize(each_t))

    再排序输出:

    1 >>> print(sorted(cl_james))
    2 ['2.01', '2.01', '2.22', '2.34', '2.34', '2.45', '3.01', '3.10', '3.21']

    推导列表:一行代码就能完成空列表的创建,迭代,每次迭代的操作,迭代后的赋值给新建的列表...这样的语法可能有点不容易理解吧

    1 >>> cl_j=[sanitize(each_t) for each_t in james]
    2 >>> cl_j
    3 ['2.34', '3.21', '2.34', '2.45', '3.01', '2.01', '2.01', '3.10', '2.22']

    感觉有点像R语言中的apply函数

    Python的’集合’数据结构

    1 >>> distances=set() # 生成空集合并赋给一个变量
    1 >>> distances={10.6,10.6,8}
    2 >>> distances
    3 {8, 10.6}

    用大括号进行赋值,Python中的集合是无序切不重复的数据集,若输入了重复的数据,Python会忽略。输出一下

    1 >>> print(sorted(set(scl_j))[0:3])
    2 ['2.01', '2.22', '2.34']
  • 相关阅读:
    idea 配置mapper.xml代码提示
    vue配置请求转发解决跨域问题
    MySQL 连接出现 Authentication plugin 'caching_sha2_password' cannot be loaded
    判断链表是否有环(Java实现)
    Java实现链表反转(借助栈实现)
    IHS代理遇到404的问题
    麒峰可视化表单设计器vue版本
    2021.5.30发布内容
    表单常见问题说明
    排序算法与查找算法在项目中的实际应用
  • 原文地址:https://www.cnblogs.com/hahaxzy9500/p/6705101.html
Copyright © 2011-2022 走看看