风-fmgao

导航

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('\n输出一条 包含所有可用类型代码的字符串:')
print('array.typecodes------------', array.typecodes)  # 注意,调用者是模块名,不是某个对象
# array.typecodes------------ bBuhHiIlLqQfd


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

# array.itemsize——对象属性
print('\n输出 数组中一个元素的字节长度')
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('\n将一个新值附加到数组的末尾:')
arr.append(4)
print('arr--append---------', arr)
# arr--append--------- array('i', [0, 1, 1, 2, 3, 4])

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


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


# array.extend(iterable)——对象方法:将可迭代对象的元素序列附加到数组的末尾,合并两个序列
print('\n将可迭代对象的元素序列附加到数组的末尾,合并两个序列:')
# 注意:附加元素数值类型必须与调用对象的元素的数值类型一致
_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('\n将列表中的元素追加到数组后面,相当于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('\n返回数组中1的最小下标:')
print('index-----------', arr.index(2))

# array.insert(i,x)——对象方法:在下标i(负值表示倒数)之前插入值x
print('\n在下标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('\n删除索引为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('\n删除第一次出现的元素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('\n将数组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('\n将数组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]



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

posted on 2018-06-15 10:54  风-fmgao  阅读(180)  评论(0编辑  收藏  举报