Python程序设计入门(3)数组的使用


Posted in Python onJune 16, 2014

1、Python的数组可分为三种类型:

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

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

(2) Dictionary 词典类型, 即是Hash数组。
定义方式:arr = {元素k:v}

2、下面具体说明这些数组的使用方法和技巧:

(1) list 链表数组

a、定义时初始化

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

b、定义时不初始化

一维数组:

arr = []

多维数组:

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

如:

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

这是错误的
i = 0
j = 0
arr = [i for i in range(5), j for j in range(5), []]

这是正确的

c、del 语句 和 : 的用法

可以用 start : end 表示数组里的一个区间 ( i >= start and i < end)
del 删除数组里的指定元素
如:

del arr[0]
        del arr[0, 2]
       newarr = arr[0, 2]

d、遍历数组

for k, v in enumerate(arr):
        print k, v

e、增加元素

一维

arr.append('aaa')

二维
arr[0].append('aaa')

如果要在任意位置插入用 arr.insert(n, 值)
此外还有一种特殊的用法是:
arr += [数组元素]
在不指定下标的情况下,是允许用 += 增加数组元素的

(2) Tuple 固定数组

Tuple 是不可变 list,一旦创建了一个 tuple 就不能以任何方式改变它。
下面拿具体示例说明:

>>> t = ("a", "b", "c", "d", "e")              #[1] 用小括号包围来定义
>>> t
('a', 'b', 'c', 'd', 'e')
>>> t[0]                                       #[2] 直接列出某下标的元素
'a'
>>> t[-1]                                      #[3] 负数表示,从后面倒数的索引 -1 为倒数第一个, 0是顺数第一个
'example'
>>> t[1:3]                                     #[4] 这里 1:3 是 i>=1 and i<3 的区间
('b', 'mpilgrim')

Tuple没有的方法

[1] 不能向 tuple 增加元素,没有 append 、 extend 、insert  等方法。
[2] 不能从 tuple 删除元素,没有 remove 或 pop 方法。
[3] 不能在 tuple 中查找元素,没有 index 方法(index是查找而不是索引,索引直接用下标即可,如:t[0])。

使用tuple的好处

* Tuple 比 list 操作速度快。如果您定义了一个值的常量集, 并且唯一要用它做的是不断地遍历它, 请使用 tuple 代替 list。
* 如果对不需要修改的数据进行 “写保护”, 可以使代码更安全。使用 tuple 而不是 list 如同拥有一个隐含的 assert 语句, 说明这一数据是常量。如果必须要改变这些值, 则需要执行 tuple 到 list 的转换 (需要使用一个特殊的函数)。
* 还记得我说过 dictionary keys 可以是字符串, 整数和 “其它几种类型”吗? Tuples 就是这些类型之一。 Tuples 可以在 dictionary 中被用做 key, 但是 list 不行。实际上, 事情要比这更复杂。Dictionary key 必须是不可变的。Tuple 本身是不可改变的, 但是如果您有一个 list 的 tuple, 那就认为是可变的了, 用做 dictionary key 就是不安全的。只有字符串, 整数或其它对 dictionary 安全的 tuple 才可以用作 dictionary key。

Tuple可以转换成list,反之亦然

转换方式为:
t = list( t )
反之:
arr = tuple( arr )

(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)
Python 相关文章推荐
Python中的super用法详解
May 28 Python
Python3实现并发检验代理池地址的方法
Sep 18 Python
Python输出带颜色的字符串实例
Oct 10 Python
JSONLINT:python的json数据验证库实例解析
Nov 28 Python
Python实现的双色球生成功能示例
Dec 18 Python
python机器学习实战之最近邻kNN分类器
Dec 20 Python
python编程测试电脑开启最大线程数实例代码
Feb 09 Python
python 获取当天每个准点时间戳的实例
May 22 Python
Python中偏函数用法示例
Jun 07 Python
Python中存取文件的4种不同操作
Jul 02 Python
解决Python3中的中文字符编码的问题
Jul 18 Python
Win10下Python3.7.3安装教程图解
Jul 08 Python
Python程序设计入门(2)变量类型简介
Jun 16 #Python
Python程序设计入门(1)基本语法简介
Jun 13 #Python
Python对两个有序列表进行合并和排序的例子
Jun 13 #Python
用Python输出一个杨辉三角的例子
Jun 13 #Python
Python 的 with 语句详解
Jun 13 #Python
python学习笔记:字典的使用示例详解
Jun 13 #Python
Python urlopen()函数 示例分享
Jun 12 #Python
You might like
php 获取页面中指定内容的实现类
2014/01/23 PHP
thinkphp使用phpmailer发送邮件的方法
2014/11/24 PHP
使用Grunt.js管理你项目的应用说明
2013/04/24 Javascript
JS获取及设置TextArea或input文本框选择文本位置的方法
2015/03/24 Javascript
jQuery实现固定在网页顶部的菜单效果代码
2015/09/02 Javascript
谈谈AngularJs中的隐藏和显示
2015/12/09 Javascript
Jquery uploadify上传插件使用详解
2016/01/13 Javascript
APP中javascript+css3实现下拉刷新效果
2016/01/27 Javascript
jQuery中的基本选择器用法学习教程
2016/04/14 Javascript
基于JQuery的购物车添加删除以及结算功能示例
2017/03/08 Javascript
Javascript创建类和对象详解
2017/05/31 Javascript
基于jQuery对象和DOM对象和字符串之间的转化实例
2017/08/08 jQuery
JS中常用的消息框总结
2018/02/24 Javascript
vue组件实现弹出框点击显示隐藏效果
2020/10/26 Javascript
Node.js搭建WEB服务器的示例代码
2018/08/15 Javascript
Vue 实现简易多行滚动&quot;弹幕&quot;效果
2020/01/02 Javascript
ant design中upload组件上传大文件,显示进度条进度的实例
2020/10/29 Javascript
Python使用matplotlib绘制动画的方法
2015/05/20 Python
深入理解python中的浅拷贝和深拷贝
2016/05/30 Python
浅谈pyhton学习中出现的各种问题(新手必看)
2017/05/17 Python
解决python3 json数据包含中文的读写问题
2018/05/10 Python
Pandas:DataFrame对象的基础操作方法
2018/06/07 Python
如何不用安装python就能在.NET里调用Python库
2019/07/12 Python
Tensorflow 实现释放内存
2020/02/03 Python
django创建css文件夹的具体方法
2020/07/31 Python
python中字典增加和删除使用方法
2020/09/30 Python
python 制作简单的音乐播放器
2020/11/25 Python
全球性的在线时尚男装零售商:boohooMAN
2016/12/17 全球购物
芝加哥牛排公司:Chicago Steak Company
2018/10/31 全球购物
Joseph官网:英国小众奢侈品牌
2019/05/17 全球购物
Quiksilver美国官网:始于1969年的优质冲浪服和滑雪板外套
2020/04/20 全球购物
幼儿园托班开学寄语
2014/01/18 职场文书
幼儿园大班开学教师寄语
2014/04/03 职场文书
孝敬父母的演讲稿
2014/05/14 职场文书
办公用品质量保证书
2015/05/11 职场文书
SpringBoot使用AOP实现统计全局接口访问次数详解
2022/06/16 Java/Android