• array


    #!/usr/bin/python3
    # -*- coding: utf-8 -*-
    # @Time    : 2018/6/15 9:35
    # @File    : array_demo1.py


    import array

    # 该模块定义了一个对象类型,可以表示一个基本值的数组:整数(b, B, h, H, i, I, l, L, q, Q)、浮点数(f or d)、字符(u)。
    # array.array(typecode,[initializer])——typecode:元素类型代码;initializer:初始化器,若数组为空,则省略初始化器。
    arr = array.array('i', [0, 1, 1, 2, 3])
    print(arr, type(arr))
    # array('i', [0, 1, 1, 2, 3]) <class 'array.array'>
    for i in arr:  # (must be b, B, u, h, H, i, I, l, L, q, Q, f or d)
        print(i, type(i))  # 数组中的值 0 <class 'int'>

    print(arr[0])  # 按照下标取值

    # array.typecodes——模块属性
    print(' 输出一条 包含所有可用类型代码的字符串:')
    print('array.typecodes------------', array.typecodes)  # 注意,调用者是模块名,不是某个对象
    # array.typecodes------------ bBuhHiIlLqQfd


    # array.typecode——对象属性
    print(' 输出 用于创建数组的类型代码字符:')
    print('arr.typecode---------', arr.typecode)
    # arr.typecode--------- i

    # array.itemsize——对象属性
    print(' 输出 数组中一个元素的字节长度')
    print('arr.itemsize---------', arr.itemsize)
    # arr.itemsize--------- 4 一个数字四个字节
    ar1 = array.array('u', ['a', '5', 'j'])  # 字符类型必须是u
    print('ar1.itemsize---------', ar1.itemsize)
    # ar1.itemsize--------- 2  一个字符2个字节


    # array.append(x)——对象方法
    print(' 将一个新值附加到数组的末尾:')
    arr.append(4)
    print('arr--append---------', arr)
    # arr--append--------- array('i', [0, 1, 1, 2, 3, 4])

    # array.buffer_info()——对象方法
    print(' 获取数组在存储器中的地址、元素的个数,以元组形式(地址,长度)返回:')
    print('arr.buffer_info()------------', arr.buffer_info())
    # arr.buffer_info()------------ (39148320, 6)


    # array.count(x)——对象方法
    print(' 获取某个元素在数组中出现的次数:')
    print('arr.count(1)-------------', arr.count(1))


    # array.extend(iterable)——对象方法:将可迭代对象的元素序列附加到数组的末尾,合并两个序列
    print(' 将可迭代对象的元素序列附加到数组的末尾,合并两个序列:')
    # 注意:附加元素数值类型必须与调用对象的元素的数值类型一致
    _list = [5, 6, 7]
    arr.extend(_list)
    print('arr------extend----', arr)
    # arr------extend---- array('i', [0, 1, 1, 2, 3, 4, 5, 6, 7])
    _list1 = (5, 6, 7)
    arr.extend(_list1)
    print('arr------extend----', arr)  # 元祖也是可以合并
    # arr------extend---- array('i', [0, 1, 1, 2, 3, 4, 5, 6, 7, 5, 6, 7])

    _list2 = {1: 4, 2: 2}
    arr.extend(_list2)
    print(arr)  # 惊呆了,字典也可以合并
    # array('i', [0, 1, 1, 2, 3, 4, 5, 6, 7, 5, 6, 7, 1, 2])
    '''
    但是字典劲限于数字字典,字符的不行
    _dict = {'1801': '邓', '1802': '杜'}
    arr.extend(_dict)
    print(arr)
    '''

    # array.fromlist(list)——对象方法:将列表中的元素追加到数组后面,相当于for x in list: a.append(x)
    print(' 将列表中的元素追加到数组后面,相当于for x in list: a.append(x):')
    arr.fromlist(_list)
    print('fromlist-------------', arr)
    # fromlist------------- array('i', [0, 1, 1, 2, 3, 4, 5, 6, 7, 5, 6, 7, 1, 2, 5, 6, 7])

    # array.index(x)——对象方法:返回数组中x的最小下标
    print(' 返回数组中1的最小下标:')
    print('index-----------', arr.index(2))

    # array.insert(i,x)——对象方法:在下标i(负值表示倒数)之前插入值x
    print(' 在下标1(负值表示倒数)之前插入值0:')
    arr.insert(-2, 0)
    print('insert----------------', arr)
    # insert---------------- array('i', [0, 1, 1, 2, 3, 4, 5, 6, 7, 5, 6, 7, 1, 2, 5, 0, 6, 7])
    arr.insert(len(arr), 0)  # 在最后一个位置插入元素,和append一个效果
    print(arr)
    # array('i', [0, 1, 1, 2, 3, 4, 5, 6, 7, 5, 6, 7, 1, 2, 5, 0, 6, 7, 0])

    # array.pop(i)——对象方法:删除索引为i的项,并返回它
    print(' 删除索引为4的项,并返回它:')
    print(arr.pop(4))  # 3  返回值是删除的元素本身
    print('pop----------', arr)
    # pop---------- array('i', [0, 1, 1, 2, 4, 5, 6, 7, 5, 6, 7, 1, 2, 5, 0, 6, 7, 0])

    # array.remove(x)——对象方法:删除第一次出现的元素x
    print(' 删除第一次出现的元素3:')
    arr.remove(1)  # 没有报 ValueError
    print('remove----------', arr)
    # remove---------- array('i', [0, 1, 2, 4, 5, 6, 7, 5, 6, 7, 1, 2, 5, 0, 6, 7, 0])

    # array.reverse()——对象方法:反转数组中元素的顺序
    print(' 将数组arr中元素的顺序反转:')
    arr.reverse()
    print('reverse----------', arr)
    # reverse---------- array('i', [0, 7, 6, 0, 5, 2, 1, 7, 6, 5, 7, 6, 5, 4, 2, 1, 0])

    # array.tolist():将数组转换为具有相同元素的列表(list)
    print(' 将数组arr转换为一个具有相同元素的列表:')
    li = arr.tolist()
    print('tolist----------', li)
    # tolist---------- [0, 7, 6, 0, 5, 2, 1, 7, 6, 5, 7, 6, 5, 4, 2, 1, 0]



    小计:这个模块没有自己的排序方法

  • 相关阅读:
    快速幂(Fast Pow)
    半小时写完替罪羊重构点分树做动态动态点分治之紫荆花之恋的wyy贴心指导
    POJ2942 UVA1364 Knights of the Round Table 圆桌骑士
    二分图判定
    Tarjan求点双连通分量
    POJ1523 SPF 单点故障
    OI比赛常数优化
    Tarjan求割点
    NOIP2015 D1T1 神奇的幻方
    NOIP2016 D2T2 蚯蚓
  • 原文地址:https://www.cnblogs.com/fmgao-technology/p/9186362.html
Copyright © 2020-2023  润新知