1.数据结构
数据结构是以某种方式组织在一起的数据的集合。最基本的数据结构是序列。
2.序列
序列常用的类型有以下六类:列表、元组、字符串、Unicode字符串、buffer对象、xrange对象。
3.列表
(1)什么是列表?
列表是由数字、字符串等组成,可随意修改。
a = ['samp', 'eggs', 520, 100, 34]
(2)列表的操作
a.索引
列表的元素都有特定的位置,这个位置由索引来描述。
通过索引可以找到某一元素。
索引分为正索引和负索引。正索引是从左往右,第一个位置是0;负索引是从右往左开始,第一个位置是-1。
a[3] = 100
a[-3] = 520
b.分片
Python-字符串。
a[0:3] = ['samp', 'eggs', 520]
a[-1:-3] = [520, 100]
注意:切片左边的数要小于右面,若大于,则取空。
分片的步长,默认步长为1,若设置步长为n(n>1),则取得元素之间会隔n-1个元素。步长也可以为负数,表示从左向右开始提取元素。
例:numbers = [1,2,3,4,5,6,7,8,9,10]
numbers[0:10:2] = [1,3,5,7,9] --最后一个2表示步长为2
c.加
两种相同的序列之间可以进行相加。
d.乘
用数字n*列表会等到一个新的列表,新的列表是原列表循环n次。
乘的操作可以用来初始化上。None是Python中的一个内键值,可以用None来表示列表中的元素是空的。
a = [None]*10 --初始化一个长度为10的列表,每个元素的空。
e.判断成员资格
使用in运算符判断某一值是否在序列中。in是布尔运算符,若在序列中,则返回true;否则,返回false。
f.迭代
后续学习...
(3)元素操作
a.元素赋值
用“=”给元素赋值,但是要利用索引说明给列表的哪个元素赋值。
b.元素删除
用del删除元素,但是要利用索引说明删除列表的哪个元素。
name = ['Viga','Johny','zihan']
del name[2] -->name = ['Viga','Johny']
c.分片赋值
通过分片赋值可以实现一次改变多个元素。
name = ['Viga','Johny','zihan']
name[2:] = ['chuhan','zifan']
print(name) -->['Viga','Johny','chuhan','zifan']
(4)列表方法
方法需要对象调用,例如:对象.方法(参数)
a.append
用于在列表末尾追加新的对象,注意:append函数是返回原列表而非返回新建列表。
a = [1,2,3,4]
a.append(5)
print(a) -->[1,2,3,4,5]
b.count
用于统计某个元素在列表中出现的次数。
a = [1,2,3,4]
b = a.count(2)
print(b)
c.extend
用于在列表末尾一次性追加另一个列表的所有值。
a = [1,2,3,4]
b = [5,6]
a.extend(b)
print(a)
extend和连接“+”的区别:
extend是改变原列表,“+”是生成新的列表。
d.index
用于从列表中找出某个值第一个匹配项的索引位置。
a = ['a','b','c','d']
a.index('c') -->2
e.insert
insert(i,x)用于在列表的i位置插入x
f.pop
pop()函数默认会移除一个列表中最后一个元素,并返回该元素的值。
a.pop() -->'d'
print(a) -->['a','b','c']
pop函数可以实现一个数据结构--栈,先进后出,最先放入列表的元素最后被移除。
g.remove
remove函数用来移除列表中第一个匹配元素。改变了列表但无返回值。
a = ['a','b','c','b']
a.remove('b')
print(a) -->['a','c','b']
h.reverse
reverse函数用于将列表中的元素反向存放。改变了列表但无返回值。
a.reverse()
print(a) -->['b','c','d']
i.sort
sort()函数用于对列表本身进行排序,改变了列表但无返回值。
b = [5,3,4,1,6]
b.sort()
print(b) -->[1,3,4,5,6]
sort()函数不仅可以对元素是数字的列表进行排序,还可以对其他列表排序。
sort()函数有三个可选的参数,又称为关键字参数cmp、key和reverse。
cmp提供了比较函数的默认方式,即从小到大排序。
key必须用来指定一个在排序过程中使用的函数,该函数可以为每个元素创造一个键。
reverse可以用来确定是否需要反向排序,是简单的布尔值,True或Flase,reverse=True表示反向,反之,不反向。
b.sort(cmp) -->[1,3,4,5,6]
s = ['wq','a','safas','sss']
s.sort(key=len)
print(s) -->['a','wq','sss','safas']
b.sort(reverse = True) -->反向排序
j.sorted
sorted()函数对列表不进行排序,会生成列表的副本,并对副本进行排序。
b = [5,3,4,1,6]
a = sorted(b)
print(b) -->[5,3,4,1,6]
print(a) -->[1,3,4,5,6]
k.reverse
reverse()函数对列表本身进行反向排序,但返回值为None。
l.cmp
cmp(x,y)函数即compare比较函数,cmp函数必须要有两个参数。
若x>y,值为1;
若x<y,值为-1;
若x=y,值为0。
(5)赋值和复制的区别
x = [1,2,3,4]
赋值(=): y = x,这是对y列表赋值为x列表,x、y同时指向同一个列表[1,2,3,4]。
复制:可以用分片进行复制操作,y = x[:],此时y是x的一个副本,不指向同一个列表。
python中正向索引与反向索引 python中正向序号体系
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章