zoukankan      html  css  js  c++  java
  • Python的split()函数


    手册中关于split()用法如下:

    str.split(sep=None, maxsplit=-1)

        Return a list of the words in the string, using sep as the delimiter string. If maxsplit is given, at most maxsplit splits are done (thus, the list will have at most maxsplit+1 elements). If maxsplit is not specified or -1, then there is no limit on the number of splits (all possible splits are made).

        If sep is given, consecutive delimiters are not grouped together and are deemed to delimit empty strings (for example, '1,,2'.split(',') returns ['1', '', '2']). The sep argument may consist of multiple characters (for example, '1<>2<>3'.split('<>') returns ['1', '2', '3']). Splitting an empty string with a specified separator returns [''].

        For example:
        >>> '1,2,3'.split(',')
        ['1', '2', '3']
        >>> '1,2,3'.split(',', maxsplit=1)
        ['1', '2,3']
        >>> '1,2,,3,'.split(',')
        ['1', '2', '', '3', '']

        If sep is not specified or is None, a different splitting algorithm is applied: runs of consecutive whitespace are regarded as a single separator, and the result will contain no empty strings at the start or end if the string has leading or trailing whitespace. Consequently, splitting an empty string or a string consisting of just whitespace with a None separator returns [].

        For example:
        >>> '1 2 3'.split()
        ['1', '2', '3']
        >>> '1 2 3'.split(maxsplit=1)
        ['1', '2 3']
        >>> '   1   2   3   '.split()
        ['1', '2', '3']

    使用中碰到对一个数据集的处理碰到一点问题,最终用split()解决:
    文件数据集:

    0.0888     201     36.02     28     0.5885  
    0.1399     198     39.32     30     0.8291  
    ...
    

    目的将数据集保存到列表,以作接下来处理。

    import os
    
    data = []
    
    for lines in open(r"date.txt",'r').readlines():
        lines.strip()
        s = [x for x in lines.strip()]
        data.append(s)
        
    print(data)

    发现输出将每个字符都打印出来了,即0.0888为6个字符而不是期望中的1个,打印data[0]长度可知确实如此。

    [['0', '.', '0', '8', '8', '8', ' ', ' ', ' ', ' ', ' ', '2', '0', '1', ' ', ' ', ' ', ' ', ' ', '3', '6', '.', '0', '2', ' ', ' ', ' ', ' ', ' ', '2', '8', ' ', ' ', ' ', ' ', ' ', '0', '.', '5', '8', '8', '5'], ['0', '.', '1', '3', '9', '9', ' ', ' ', ' ', ' ', ' ', '1', '9', '8', ' ', ' ', ' ', ' ', ' ', '3', '9', '.', '3', '2', ' ', ' ', ' ', ' ', ' ', '3', '0', ' ', ' ', ' ', ' ', ' ', '0', '.', '8', '2', '9', '1']]
    

     利用split()函数按' '把每个数字分割出来:

    for lines in open(r"date.dat",'r').readlines():
        lines.strip()
        s = [x for x in lines.strip().split()]
        data.append(s)
        
    print(data)
    print(len(data[0]))

    输出:

    [['0.0888', '201', '36.02', '28', '0.5885'], ['0.1399', '198', '39.32', '30', '0.8291']]
    5
  • 相关阅读:
    2 java开发环境的配置步骤
    1 java 笔记
    sql 创建新表时的完成格式
    sql 将英文句子中的单词首字母转换为大写
    c# datatable 如何转CSV文件
    c#调用存储过程实现批量增加和修改数据
    c#如何使用MemoryStream和BinaryFormatter进行对象的序列化和返序列化
    supersr--KVO/KVC
    supersr--控制器的生命周期:
    Javascript高级编程学习笔记(16)—— 引用类型(5) Function类型
  • 原文地址:https://www.cnblogs.com/space-place/p/6322976.html
Copyright © 2011-2022 走看看