python数组使用

1.Python的数组分三种类型

(1) list 普通的链表,初始化后可以通过特定方法动态增加元素。

定义方式:arr = [元素]

(2) Tuple 固定的数组,一旦定义后,其元素个数是不能再改变的。

定义方式:arr = (元素)

(3) Dictionary 词典类型, 即是Hash数组。

定义方式:arr = {元素k:v}

2.数组的使用方法和技巧

(1) list 链表数组

定义时初始化:

a = [1,2,[1,2,3]]

定义时不初始化:

arr = [i for i in range(10), 1,[]]    注意, i for in xx 这个必须放在第一个位置,否则要先定义i,如:

i = 0

j = 0

arr = [i for i in range(5), j for j in range(5), []]

del 语句 和 : 的用法

可以用 start : end 表示数组里的一个区间 ( i >= start and i < end)

del 删除数组里的指定元素,如: del arr[0]  del arr[0, 2]  newarr = arr[0, 2]

遍历数组:

for k, v in enumerate(arr):

print k, v

(2) Dictionary (哈希数组)词典数组

#Dictionary 的用法比较简单,它可以存储任意值,并允许是不同类型的值,下面实例来说明:

#下面例子中 a 是整数, b 是字符串, c 是数组,这个例子充分说明哈希数组的适用性。

dict_arr = {'a': 100, 'b':'boy', 'c':['o', 'p', 'q']}

#可以直接增加一个元素,如果同名,则会改变原来的key的元素的值

dict_arr['d'] = 'dog'

#输出所有的key

print dict_arr.keys()

#输出所有的value

print dict_arr.values()

#遍历数组

import types

for k in dict_arr:

v = dict_arr.get(k)

if type(v) is types.ListType: #如果数据是list类型,继续遍历

print k, '---'

for kk, vv in enumerate(v):

print kk, vv

print '---'

else:

print dict_arr.get(k)

list的方法:

L.append(var) #追加元素

L.insert(index,var)

L.pop(var) #返回最后一个元素,并从list中删除之

L.remove(var) #删除第一次出现的该元素

L.count(var) #该元素在列表中出现的个数

L.index(var) #该元素的位置,无则抛异常

L.extend(list) #追加list,即合并list到L上

L.sort() #排序

L.reverse() #倒序

list 操作符:,+,*,关键字del

a[1:] #片段操作符,用于子list的提取

[1,2]+[3,4] #为[1,2,3,4]。同extend()

[2]*4 #为[2,2,2,2]

del L[1] #删除指定下标的元素

del L[1:3] #删除指定下标范围的元素

  1. Tuble固定数组

Tuple 是不可变 list,一旦创建了一个 tuple 就不能以任何方式改变它。

下面拿具体示例说明:

>>> t = ("a", "b", "c", "d", "e") #用小括号包围来定义

>>> t

('a', 'b', 'c', 'd', 'e')

>>> t[0] #直接列出某下标的元素

'a'

>>> t[-1] #负数表示,从后面倒数的索引 -1 为倒数第一个, 0是顺数第一个

'example'

>>> t[1:3] #这里 1:3 是 i>=1 and i<3 的区间

('b', 'mpilgrim')

使用 tuple 的好处:

 Tuple 比 list 操作速度快。如果您定义了一个值的常量集, 并且唯一要用它做的是不断地遍历它, 请使用 tuple 代替 list。如果对不需要修改的数据进行 “写保护”, 可以使代码更安全。使用 tuple 而不是 list 如同拥有一个隐含的 assert 语句, 说明这一数据是常量。如果必须要改变这些值, 则需要执行 tuple 到 list 的转换 (需要使用一个特殊的函数)。

Tuple 可以转换成 list, 反之亦然。
转换方式为:
t = list( t )
反之:
arr = tuple( arr )

3.创建和初始化数组

(1)使用列表创建数组:

在Python中,可以使用列表来创建数组。示例代码如下:

...

Python

array = [1, 2, 3, 4, 5]

print(array)

...

(2) 访问数组元素:

可以使用索引来访问数组中的特定元素。示例代码如下:

...

python

array = [1, 2, 3, 4, 5]

print(array[0]) # 访问第一个元素

print(array[-1]) # 访问最后一个元素

...

(3)数组切片:

使用切片操作可以获取数组的子集。示例代码如下:

...

python

array = [1, 2, 3, 4, 5]

print(array[1:4]) # 获取索引1到3的子数组

...

4.数组统计和操作

(1)数组求和:

使用numpy库中的sum()函数可以对数组进行求和操作。示例代码如下:

...

python

import numpy as np

array = np.array([1, 2, 3, 4, 5])

result = np.sum(array)

print(result)

...

这段代码计算了数组中所有元素的和,并将结果打印出来。

(2) 数组排序:

使用numpy库中的sort()函数可以对数组进行排序操作。示例代码如下:

...

python

import numpy as np

array = np.array([3, 1, 5, 2, 4])

result = np.sort(array)

print(result)

...

这段代码对数组进行排序,并将结果打印出来

5.string: 字符串(即不能修改的字符list)

str = “Hello My friend”

字符串是一个整 体。如果你想直接修改字符串的某一部分,是不可能的。但我们能够读出字符串的某一部分。

子字符串的提取

str[:6]

字符串包含 判断操作符:in,not in

“He” in str

“she” not in str

string模块,还提供了很多方法,如

S.find(substring, [start [,end]]) #可指范围查找子串,返回索引值,否则返回-1

S.rfind(substring,[start [,end]]) #反向查找

S.index(substring,[start [,end]]) #同find,只是找不到产生ValueError异常

S.rindex(substring,[start [,end]])#同上反向查找

S.count(substring,[start [,end]]) #返回找到子串的个数

S.lowercase()

S.capitalize() #首字母大写

S.lower() #转小写

S.upper() #转大写

S.swapcase() #大小写互换

S.split(str, ‘ ‘) #将string转list,以空格切分

S.join(list, ‘ ‘) #将list转string,以空格连接

len(str) #串长度

cmp(“my friend”, str) #字符串比较。第一个大,返回1

max(‘abcxyz’) #寻找字符串中最大的字符

min(‘abcxyz’) #寻找字符串中最小的字符

string的转换:

oat(str) #变成浮点数,float(“1e-1″) 结果为0.1

int(str) #变成整型, int(“12″) 结果为12

int(str,base) #变成base进制整型数,int(“11″,2) 结果为2

long(str) #变成长整型,

long(str,base) #变成base进制长整型,

str_format % (参数列表)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值