pythonarray函数_[转]Python中Array的常⽤操作——数组基本
操作
第⼀篇:创建数组
. 定义数组
>>> seq = [ “a” , “b” , 1 ]
[ “a” , “b” , 1 ]
2. 创建数组
>>> a = “what are you doing?”.split()
[’what’, ‘are’, ‘you’, ‘doing?’]
>>> a = [ x*2 for x in range(1,5) ]
[2, 4, 6, 8]
b = [ x for x in a if x >3 ]
[ 4, 6, 8]
第⼆篇:数组基本操作
1. 数组操作
x代表数组中的元素,i代表位置
a) append(x) 把元素x添加到数组的尾部
b) insert(i,x) 把元素x 插⼊到位置i
c) remove(x) 删除第⼀个元素x
d) pop(i) 删除第i个元素,并返回这个元素。若调⽤pop()则删除最后⼀个元素
e) index(x) 返回数组中第⼀个值为x的位置。如果没有匹配的元素会抛出⼀个错误
f) count(x) 返回x在数组中出现的次数
g) sort() 对数组中的元素进⾏排序
h) reverse() 对数组中的元素⽤倒序排序
>>> a = [ x*2 for x in range(1,5) ]
[2, 4, 6, 8]
>>> del a[0]
[4, 6, 8]
>>> a = [ 1 , 2 ] + a
[1, 2, 4, 6, 8]
>>> a += [None]*2
[1, 2, 4, 6, 8, None, None]
>>> a.remove(1)
[2, 4, 6, 8, None, None]
>>> a.pop()
[2, 4, 6, 8, None,]
>>> a.append(100)
[2, 4, 6, 8, None, 100]
>>> a.insert(0,8)
[8, 2, 4, 6, 8, None, 100]
>>> a.count(8)
2
>>> a.index(2)
1
2. 遍历数组
>>> a = [ x*2 for x in range(1,5) ] [2, 4, 6, 8]
>>> for x in a:
… print x
python 定义数组
>>> for i, x in enumerate(a):
… print x
>>> b = [ x+100 for x in a]
>>> for i,j in zip(a,b):
… print i,j
第三篇:数组⾼级操作
1. 抽取数组中不重复的数据
>>> a = [ x*2 for x in range(1,5) ]*2 >>> uniq = list(set(a))
[8, 2, 4, 6]
>>> uniq = sorted(set(a))
[2, 4, 6, 8]
>>> b={}
>>> for x in a:
… b[x]=1
>>> uniq = b.keys()
2. 去除在另⼀个数组中元素
>>> a = [ x*2 for x in range(1,5) ]
>>> b = [ x for x in a if x >3 ]
>>> aonly = [x for x in a if x not in b]
>>> a_set = set(a)
>>> b_set = set(b)
>>> aonly = list(a_set - b_set)
3. 数组排序
>>> def comp(x,y):
… if x>y:
… return -1
… elif x==y:
… return 0
… else :
return 1
>>> unsorted_list = [82, 67, 10, 46, 81, 40, 71, 88, 55]
>>> unsorted_list.sort(comp)
[88, 82, 81, 71, 67, 55, 46, 40, 10]
4. 两个数组交、并操作
>>> a = [ x*2 for x in range(1,5) ]
[2, 4, 6, 8]
>>> b = [ x for x in range(3,7) ]
[3, 4, 5, 6]
>>> a_set = set(a)
>>> b_set = set(b)
# Union
>>> print list (a_set | b_set )
[2, 3, 4, 5, 6, 8]
#Intersection
>>> print list(a_set & b_set)
[4, 6]
#Difference
>>> print list(a_set ^ b_set)
[8, 2, 3, 5]
5. 数组函数map()、filter()、reduce()
a) map()
map(function,sequence)为每⼀个sequence的元素调⽤function(item)
并把返回值组成⼀个数组。
>>>
>>> def fun(x): return x*x
>>> print map(fun,range(0,5))
[0, 1, 4, 9, 16]
使⽤map(None,list1,list2)可以快速把两个数组变成元素对的⼀个数组
>>> print map(None,range(0,5),range(100,105))
[(0, 100), (1, 101), (2, 102), (3, 103), (4, 104)]
b) filter()
filter(function,sequence)返回⼀个序列,包含了所有调⽤function(item)后返回值为true的元素。
>>> unsorted_list = [82, 67, 10, 46, 81, 40, 71, 88,
55]
>>> def fun(x): return x%2==0
>>> print filter(fun,unsorted_list)
[88, 82, 46, 40, 10]
c) reduce()
reduce(function,sequence)返回⼀个单值,⾸先以数组的前两个元素调⽤函数function,在以返回值和第三个元素为参数调⽤,依次执⾏下去。
例如,以下程序计算1到10的整数的和
>>> def add(x,y): return x+y
>>> print reduce(add,range(0,11))
55

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。