Python的序列Ⅰ

Python包含6种内建的序列:列表,元组,字符串,Unicode,buffer对象,xrange对象。

通用序列操作包括:索引,分片,加,乘,成员资格。

另外还有长度(len),最小值(min),最大值(mix)内建函数

  • 列表 

基本的列表操作

#创建一个列表
>>> nums = [1,2,3,5]
>>> nums
[1, 2, 3, 5]

#元素赋值
>>> nums[2] = 7
>>> nums
[1, 2, 7, 5]
>>> 

#删除元素
>>> del nums[0]
>>> nums
[2, 7, 5]

#list函数(类型)可以根据字符串创建列表
>>> st = list('Hello')
>>> st
['H', 'e', 'l', 'l', 'o']

#分片 使用索引访问单个元素,使用分片来访问一定范围的元素
>>> nums = [1,2,3,4,5,6,7,8,9,10]
>>> nums[2:6]
[3, 4, 5, 6]

##为了让分片能够包含列表的最后一个元素,必须提供 大于最后一个元素索引的索引作为边界
>>> nums[2:10]
[3, 4, 5, 6, 7, 8, 9, 10]

##从结尾开始计数
>>> nums[-3:]
[8, 9, 10]

##从开始开始计数
>>> nums[:3]
[1, 2, 3]

##整个列表
>>> nums[:]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

##步长
>>> nums[0:10:3]
[1, 4, 7, 10]
>>> nums[::4]
[1, 5, 9]
>>> nums[::-2]
[10, 8, 6, 4, 2]

##分片赋值
>>> name = list('hemin')
>>> name
['h', 'e', 'm', 'i', 'n']
>>> name[2:] = list('shen')
>>> name
['h', 'e', 's', 'h', 'e', 'n']

##插入与删除
>>> nums2 = [1,5]

>>> nums2[1:1] = [2,3,4]
>>> nums2
[1, 2, 3, 4, 5]
>>> nums2[1:4] = []
>>> nums2
[1, 5]

列表方法

# append() 追加,append直接修改原来的列表,不是返回修改过的新列表
>>> letters = ['a','b',"c"]
>>> letters.append('d')
>>> letters
['a', 'b', 'c', 'd']

#count() 统计指定元素出现的次数
letters = list('aabcdeeefggggh')
>>> letters.count('g')
4

#extend() 列表末尾追加多个值,或说可以用新列表扩展原列表
>>> letters2 = list('ijklmn')
>>> letters.extend(letters2)
>>> letters
['a', 'a', 'b', 'c', 'd', 'e', 'e', 'e', 'f', 'g', 'g', 'g', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n']
#注:extend 和 append 直接修改原来的列表,而连接操作会返回一个全新的列表,连接操作比extend方法效率低
>>> a = [1,2,3]
>>> b = [4,5,6]
>>> a+b
[1, 2, 3, 4, 5, 6]
>>> a
[1, 2, 3]#a没改变

#insert() 插入
>>> nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> nums.insert(2,'two')
>>> nums
[1, 2, 'two', 3, 4, 5, 6, 7, 8, 9, 10]

#pop pop方法会移除列表中的一个元素(根据索引移除)
>>> nums.pop()#默认移除最后一个元素
10
>>> nums
[1, 2, 'two', 3, 4, 5, 6, 7, 8, 9]
>>> nums.pop(3)
3
>>> nums
[1, 2, 'two', 4, 5, 6, 7, 8, 9]

# remove() remove 方法会移除列表中的一个元素第一个匹配项(根据元素移除)
>>> letters = list('abccd')
>>> letters.remove('c')
>>> letters
['a', 'b', 'c', 'd']

# reverse() 列表元素反向存放
>>> le = list('abc')
>>> le.reverse()
>>> le
['c', 'b', 'a']
>>> 

#列表复制
>>> x = [5,4,7]
>>> y = x      #这样x和y指向同一个列表
>>> z = x[:]  #应该这样复制

>>> x.sort()

>>> y
[4, 5, 7]
>>> z
[5, 4, 7]

#排序
#sort() 列表排序
>>> num = [5,7,6,9,2,1]
>>> num.sort()
>>> num
[1, 2, 5, 6, 7, 9]

#sort(*, key=None, reverse=None),key表示排序的关键字,reserve表示是否逆序。Python3的sort是稳定排序。
>>>a=['abc','abcd','ab']
>>> a.sort(key=len)
>>> a
['ab', 'abc', 'abcd']

#clear() 清空列表
#copy() 复制列表
  • 元组

#元组不能被修改
#创建元组
>>> 1,2,3
(1, 2, 3)

>>> 'a','b','c'
('a', 'b', 'c')

>>> ()#空元组
()

>>> ('d',) #只包含一个元素
('d',)

#元组的意义:元组可以在映射中当做键使用,列表不行;元组作为很多内建函数的方法和返回值存在

 

posted @ 2017-09-03 19:05  __Altair  阅读(293)  评论(0编辑  收藏  举报