读书时代,最让人头疼的就是C语言的数据结构。里面有着
线性表
,栈和队列
,树和二叉树
,图
。而Python的数据结构内置简单,可以很好的调用。无需知道过多的细节。
Python列表
如何把一组数字或者字符串,分成一个组或者集合。集中存储在内存中呢?这里可以通过列表[list],来存储信息。
接下来介绍,如何创建列表和一系列的增删改查操作。
创建列表
>>> friends = ['张盛东','刘钟浩','胡轲']
>>> numbers=['1','3','5','10']
>>> print (friends)
['张盛东', '刘钟浩', '胡轲']
>>> print (numbers)
['1', '3', '5', '10']
添加元素
现在,我想加一个朋友,分到一组里面。如何操作,如下:
>>>friends.append('杨帆')
>>> print (friends)
['张盛东', '刘钟浩', '胡轲', '杨帆']
查询元素
列表的元素可以通过索引的方式获取,在计算机语言中,一般从0开始计数,因此。上述的friends的列表。取出第一个和第三个元素,命令如下:
>>> print (friends[0])
张盛东
>>> print (friends[2])
胡轲
列表分片
分片slicing
,就像切面包一样,我从列表中取出多个元素。
>>> print (friends[0:2])
['张盛东', '刘钟浩']
>>> print (friends[0:3])
['张盛东', '刘钟浩', '胡轲']
>>> print (friends[1:3])
['刘钟浩', '胡轲']
从取出的元素,可知。取出的元素个数是(2-0=2,3-0=3,3-1=2)。索引从开始位置选出,达到第二个索引之前结束。
分片简写
>>> print (friends[:3])
['张盛东', '刘钟浩', '胡轲']
>>> print (friends[:2])
['张盛东', '刘钟浩']
>>> print (friends[3:])
['杨帆']
>>> print (friends[2:])
['胡轲', '杨帆']
>>> print (friends[:])
['张盛东', '刘钟浩', '胡轲', '杨帆']
修改元素
把第三个朋友胡轲
,修改成另外一个朋友
>>> print (friends[2])
胡轲
>>> friends[2] ='衷晨'
>>> print (friends)
['张盛东', '刘钟浩', '衷晨', '杨帆']
一些其他添加列表元素的方法
extend()
列表扩展,可以加入多个元素
>>> friends.extend(['zhang','liu','hu'])
>>> print (friends)
['张盛东', '刘钟浩', '衷晨', '杨帆', 'zhang', 'liu', 'hu']
insert()
在指定的位置,插入一个元素。命令如下:在第三个元素的位置,插入王二
这个元素。
>>> friends.insert(2,'王二')
>>> print (friends)
['张盛东', '刘钟浩', '王二', '衷晨', '杨帆', 'zhang', 'liu', 'hu']
删除元素
remove()删除
选出你要删除的元素
>>> friends.remove('张盛东')
>>> print (friends)
['刘钟浩', '王二', '衷晨', '杨帆', 'zhang', 'liu', 'hu']
del 通过索引删除元素
>>> print (friends)
['刘钟浩', '王二', '衷晨', '杨帆', 'zhang', 'liu', 'hu']
>>> del friends[0]
>>> print (friends)
['王二', '衷晨', '杨帆', 'zhang', 'liu', 'hu']
pop删除最后一个元素
>>> friends = ['张盛东','刘钟浩','胡轲']
>>> print (friends)
['张盛东', '刘钟浩', '胡轲']
>>> friends.pop()
'胡轲'
>>> print (friends)
['张盛东', '刘钟浩']
查询元素
可以通过for语句和if语句,获取遍历你选择的元素,并作出相应的操作。
#!/usr/bin/python
#-*-coding:GBK -*-
friends = ['zhang','liu','hu','张盛东']
for friend in friends:
print (friend)
print ("---------------------------")
if 'zhang' in friends:
print ("发现 'zhang' 在friends列表中")
print (friends.index('zhang'))
列表排序
可以对数字或者字符串排序。
>>> numbers = [3,19,1,12,7]
>>> numbers.sort()
>>> print (numbers)
[1, 3, 7, 12, 19]
Python 元祖
元祖(Tuple)与列表对比来说,其元素不能修改。
定义元祖
>>> tuple1=('zhang','liu',1,3,4,5)
>>> print (tuple1)
('zhang', 'liu', 1, 3, 4, 5)
Python 字典
dictionary是将两个事物关联在一起。这一对事物分别称为键(key)和值(value)。字典中的每个项(item)或者条目(entry)。--其中entry这个词会在计算机语言中多次出现。都有一个键和值。统称为键值对(key-value pair)。
简单的理解,可以理解为电话簿。一个名字对应一个手机号码。
定义字典
>>> phoneNumbers = {"zhang": "555-1234","liu":"1512008","hu":"1387098"}
>>> print(phoneNumbers['zhang'])
555-1234
>>> print(phoneNumbers['hu'])
1387098
查看key和value
>>> print(phoneNumbers.keys())
dict_keys(['zhang', 'liu', 'hu'])
>>> print(phoneNumbers.values())
dict_values(['555-1234', '1512008', '1387098'])
删除字典元素
-
del删除一个条目(entry)
>>> print(phoneNumbers) {'zhang': '555-1234', 'liu': '1512008', 'hu': '1387098'} >>> del phoneNumbers['liu'] >>> print(phoneNumbers) {'zhang': '555-1234', 'hu': '1387098'}
-
clear()清除所有条目
>>> phoneNumbers.clear() >>> print(phoneNumbers) {}