第3课:Python列表与字典(数组)操作

[1]列表(list)  有序

Python中是没有数组的概念的,但是在我看来,列表就是数组,他和数组的操作几乎一模一样

下面我们先来定义一个列表:
a=[0,1,2],这时a[0]=0, a[1]=1, a[2]=2
如果数组a想定义为0到999怎么办?这时可通过a = range(0, 1000)实现。或省略为a = range(1000).如果想定义1000长度的a,初始值全为0,则 a = [0 for x in range(0, 1000)]

学过数组的人都知道,数组不仅有像上面的一维数组,还有多维数组,那么二维列表该怎么写呢?
直接定义 a=[[1,1],[1,1]],这里定义了一个2*2的,且初始为1的二维数组。
间接定义 a=[[0 for x in range(10)] for y in range(10)],这里定义了10*10初始为0的二维数组
当然了,数组元素也可以是列表或者其他复杂数据类型

下面给出一些常见的列表操作,可以满足99%的项目

1.创建列表(list)
godeye = ['a',1,('god','eye')]
你可能注意到('god','eye') 这个元素在python中叫元组(tuple)
Python的元组与列表类似,不同之处在于元组的元素不能修改;元组使用小括号(),列表使用方括号[];元组创建很简单,只需要在括号中添加元素,并使用逗号(,)隔开即可
创建空元组,例:godeye = ();
元组中只有一个元素时,需要在元素后面添加逗号,例如:godeye = (50,);
元组与字符串类似,下标索引从0开始,可以进行截取,组合等

2.更改列表元素值
godeye = ['god', 'eye']
godeye[0]="people";
print godeye;

3.删除列表元素
godeye = ['god', 'eye']
del godeye[0];

4.列表截取
godeye = ['god', 'God', 'GOD!'];
print godeye[2];
print godeye[-2];
print godeye[1:];
返回值
GOD!
God
['God', 'GOD!']

5.其他列表方法
list.append(obj) 在列表末尾添加新的对象
list.count(obj) 统计某个元素在列表中出现的次数
list.extend(seq) 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
list.index(obj) 从列表中找出某个值第一个匹配项的索引位置,索引从0开始
list.insert(index, obj) 将对象插入列表
list.pop(obj=list[-1]) 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
list.remove(obj) 移除列表中某个值的第一个匹配项
list.reverse() 反向列表中元素,倒转
list.sort([func]) 对原列表进行排序

[2]字典  无序,所谓无序,是指字典里代码定义好的元素顺序,在返回出来的时候并不保证顺序
字典(dictionary)是除列表之外python中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取
字典由键和对应的值组成。字典也被称作关联数组或哈希表。基本语法如下:
godeye = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'};
字典概念和Object-C比较像,类似于PHP中的关联数组

字典操作:
1.访问字典里的值
dict = {'name': 'Zara', 'age': 7, 'class': 'First'};
print "dict['name']: ", dict['name'];
print "dict['age']: ", dict['age'];

2.修改字典元素值
dict = {'name': 'godeye', 'age': 7, 'class': 'First'};
dict["age"] = 27; #修改已有键的值
dict["school"] = "wutong"; #增加新的键/值对
print "dict['age']: ", dict['age'];
print "dict['school']: ", dict['school'];

3.删除字段元素
del dict['name']; # 删除键是'name'的条目
dict.clear(); # 清空词典所有条目
del dict ; # 删除词典

4.其他字典方法
cmp(dict1, dict2) 比较两个字典元素。
len(dict) 计算字典元素个数,即键的总数。
str(dict) 输出字典可打印的字符串表示。
type(variable) 返回输入的变量类型,如果变量是字典就返回字典类型。
radiansdict.clear() 删除字典内所有元素
radiansdict.copy() 返回一个字典的浅复制
radiansdict.fromkeys() 创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
radiansdict.get(key, default=None) 返回指定键的值,如果值不在字典中返回default值
radiansdict.has_key(key) 如果键在字典dict里返回true,否则返回false
radiansdict.items() 以列表返回可遍历的(键, 值) 元组数组
radiansdict.keys() 以列表返回一个字典所有的键
radiansdict.setdefault(key, default=None) 和get()类似, 但如果键不已经存在于字典中,将会添加键并将值设为default
radiansdict.update(dict2) 把字典dict2的键/值对更新到dict里
radiansdict.values() 以列表返回字典中的所有值

5.字典遍历
for key, value in data.items():
    print str(key) + '---'+str(value)

[3]元组  有序
元组和list列表很像,区别在于元组是有序的,而且值不能被更改(如果一个元组的元素是一个list,那么定义位置就一定要是一个list,但是list的元素值是可以修改的,这里需要注意)

定义:
tup = (1,2,3,4,5)
print(tup[2])
打印出:3

元组中的元素值虽然是不允许修改的,但我们可以对元组进行连接组合
url=('192.168.85.130','godeye')
addr=('god','eye','org')
tup3=url+addr
print(tup3)
返回值:('192.168.85.130', 'godeye', 'god', 'eye', 'org')

打赏  如对你有帮助,请我喝杯咖啡吧!