python 入门

作者: SCQ000 | 来源:发表于2019-12-27 16:57 被阅读0次

    python编程语言中有一些常用的数据结构,熟悉这些数据结构和常用方法是进一步使用python进行数据分析的基础。

    String

    字符串是所有编程语言中最常见的数据结构,在Python中,字符串的操作和定义和其他编程语言也大致相同。
    首先是定义一个字符串,在python中,可以使用单引号或者双引号进行定义。同时如果一个字符串要跨越多行,可以使用"""或者'''进行定义:

    str1 = "hello"
    str2 = 'hello'
    str3 = """
        this is a mulitple line string
        this is a multiple line string
    """
    

    对于字符串的截取操作,python支持[num1, num2],[num1],[:num2][num1:]等多种形式。是"左闭右开"的方式:

    str1 = "hello"
    print(str1[0:2]) # he
    print(str1[2]) # l
    print(str1[:3]) # 省略头部,相当于从0开始, hel
    print(str1[:-1]) # 负数相当于从右往左数  hell
    

    python还支持第三个参数,用它可以指明跳过的数值,默认是1

    print(str1[::2]) # hlo
    

    format

    字符串中一个比较常用的操作是格式化,可以使用format这个方法进行处理,在字符串中占位符,使用{}进行记录。

    str = 'Hello, I am {}, I am {} years old'.format('scq000', 23)
    print(str) # 'Hello, I am scq000, I am 23 years old'
    

    还有一种定义格式化字符串的方式使用f开头的字符串:

    name = 'scq000'
    age = 23
    data = f'Hello, {name}, I am {age}'
    

    这里详细的接口和用法,可以参考:https://www.python.org/dev/peps/pep-0498/

    find

    在一个字符串中查找子字符串所在的位置也是常见操作,可以使用find接口:

    "sdfsdfds".find("fd") # 5
    

    split

    将字符串安装分隔符进行分割,可以使用split方法:

    "hello world".split(" ") # ["hello", "world"]
    "hello,world".split(",") # ["hello", "world"]
    

    strip

    去除字符串前后多余的空格,可以采用strip方法:

    "     sfsdf    fdsfs and   ".strip() # 'sfsdf    fdsfs and'
    

    join

    将一个列表用字符串进行合并,可以采用join方法:

    data = ['hello','world']
    ", ".join(data) # 'hello, world'
    

    List

    列表(或数组)是用来存储顺序数据的一种常用数据结构,创建一个列表有以下几种方式:

    list1 = [] # 空列表
    list2 = [1,2,3] # 带数据的列表
    list3 = list() # 利用list构造函数进行声明
    

    Python中的列表常用操作有以下几种:

    常用方法 作用 例子
    append 在列表末尾加入一个元素 data.append(1)
    insert 在列表特定位置插入一个元素 data.insert(1, '2')
    del 删除特定位置的元素 del data[2]
    remove 删除特定值的元素 data.remove(10)
    clear 删除列表中的所有元素 data.clear()
    sort 排序 data.sort()
    reverse 翻转列表 data.reverse()

    由于修改列表中的数据势必会影响原数据,所以在操作过程中,经常会用到深度拷贝的操作:

    data = [1,2,3,4]
    d = data[:] #简便写法
    # 后续操作d列表,就不会影响到原来的data列表了
    

    另外,还有一些通用的接口在日常编程中十分常见:

    操作 描述
    v in s 判断值是否在s中
    v not in s 判断值是否不在s中
    s + t 合并两个列表生成新的列表
    s * n or n * s 乘以一个数字,可以扩展对应的列表
    min(s) 取得最小值
    len(s) 获取长度
    max(s) 取得最大值
    s.count(v) 值v在s中出现了几次

    比如:

    data = [1,2,3,4]
    1 in data # True
    0 not in data # True
    data * 2 # [1,2,3,4,1,2,3,4]
    data + [5,4,3,2,1] # [1,2,3,4,5,4,3,2,1]
    print(data.count(2)) # 1
    print(len(data), min(data), max(data)) # 4, 1, 4
    

    Tuple

    元组是python中一种特殊的数据结构,它的特定是不能其中的元素不能修改。定义方式使用常见的()进行定义,如:

    tup2 = (1,2,3,4)
    tup2 = 1, 2, 3 # 可以省略括号
    tup3 = tuple() #使用构造函数
    

    虽然元组中的数据不能被修改,不过我们可以使用多个元组进行组合生成新的元组:

    tup1 = (1,2,3)
    tup2 = (4,5,6)
    tup3 = tup1 + tup2
    x, y, z = tup2
    # x == 4, y == 5, z == 6
    

    Dictionary

    字典是一个由键值对组成的对象,创建一个字典对象可以使用如下方式:

    dict1 = {} #空字典
    dict2 = {'1': 1}
    dict3 = dict() # 使用构造函数创建字典
    

    针对一个字典对象,Python提供了很多和列表类似的接口进行操作:

    常用操作 作用 例子
    v in d 判断某个值是否在字典中 '1' in dict1
    v not in d 判断某个值是否不在字典中 '1' not in dict1
    del d[k] 删除特定键值对 del d['1']
    d.keys() 列出所有的键 dict1.keys()
    d.values() 列出所有的值 dict1.values()
    d.items() 列出所有的键值对 dict1.items()
    d.clear() 清空字典 dict1.clear()
    d.copy() 浅拷贝一个字典 dict1.copy()
    len(d) 获取键值对个数 len(dict1)

    其他数据结构

    python目前还提供了很多实用的数据结构,包括:range, set, frozense和collections模块中的一系列数据结构,大家可以根据自身需要进行学习:

    https://docs.python.org/3/library/stdtypes.html#range

    https://docs.python.org/3/library/stdtypes.html#set

    https://docs.python.org/3/library/collections.html

    function

    函数的创建由def关键字开头进行定义:

    def hello():
        print("hello world")
    

    创建一个有返回值的函数:

    def sum(a, b):
        return a + b
    
    print(sum(1,2)) # 3
    

    另外一种定义匿名函数的方式是使用lambda函数:

    f = lambda x, y: x**y + y**2
    

    File I/O

    操作文件是可以使用以下这些接口:

    f = open("tempfile", "w")
    

    其中第二个参数是文件描述符,"w"对应write,"r"对应read,"a"对应append等。对此,可以参考https://docs.python.org/3/tutorial/inputoutput.html#reading-and-writing-files这篇文档。

    使用python程序读写文件的最佳实践是使用with语句,即使程序运行过程中发生错误,文件也能够被合适地关闭,如果不是用with语句,那么你需要显式地使用close方法进行释放文件资源。

    with open('temp.txt', 'a') as fout:
        fout.write("hello")
    
    import numpy
    

    在操作json格式的文件时,可以使用json模块:

    import json
    f1 = open("temp.json", 'w')
    json.dump([1, 'hello'], f1) #将json对象写入文件
    f1 = f1.close()
    f2 = open("temp.json", 'r')
    x = json.load(f2) # x = [1, 'hello']
    

    参考资料

    http://greenteapress.com/thinkpython2/html/index.html

    https://docs.python.org/3/tutorial/inputoutput.html

    相关文章

      网友评论

        本文标题:python 入门

        本文链接:https://www.haomeiwen.com/subject/qtktoctx.html