- 序列是Python中最基本的一种数据结构,序列上的每一个元素都会指定一个数字(或称之为索引),以0开头类推。
- 在Python的6个序列中,列表和元祖是最常见的。
- 序列都可以进行的操作包括 : 索引,切片 , 加 , 乘 , 检查成员。
- 除此之外,序列都可以进行确定序列长度,确定最大元素和最小元素的方法。
- Python中的元素都是任意的(数字,字符串,子列表,子元祖,字典, 布尔值 等)都可以,只要用逗号分隔开就行。
列表常规写法展示 :
li1 = ["jdk" , 31 , "dhufe" ]
li2 = [["dew",23] , 23 , "fuhe"]
li3 = [("few", 34 , "fefe") , "fef"]
访问列表的方法 :
1. 通过索引的方法进行访问。
print(li1[0] , li2[1])
name = li[1]
2. 通过切片的方式进行访问。
print(li[0:1])
for it in li[:2] ####开头没有指明,默认从开头开始
print(it)
for it in li[1:] #### 末尾没有指明,默认访问到结尾
print(it)
更新列表的方法 :
- 可以直接对列表里面的值进行修改。
-
可以采用append()在结尾处添加元素。
li2[0] = "dew"
li1[2] = 213
li2.append("defde")
li1.append(32)
li3.append(["dewfd",32])
删除列表元素的方法 :
- 通过 del 删除 可采用 del+索引(或者切片)的方法
- 用方法 remove()进行删除
用方法 pop() 进行移除
del li1[0]
del li2[0:1] ### 采用 del 方法进行删除
li1.remove(31) #### 采用 remove() 的方法进行移除,参数为列表中的目标元素
delPoint = li1.pop(2) #### 采用 pop() 的方法进行移除,参数为列表的索引,移除的元素返还回来,注意其中的参数不能加入切片
Python列表脚本操作符
使用 “+” 和 “*” 等符号 :
Python表达式 | 结果 | 描述 |
len([1,2,3]) | 3 | 计算列表长度 |
[1,2,3] + [4,5,6] | [1,2,3,4,5,6] | 组合 |
["Hi"] * 2 | ["Hi" , "Hi"] | 重复 |
3 in [1,2,3] | True | 元素是否存在于表中 |
for x in [1,2,3] : print x | 1 2 3 | 迭代 |
索引可以取负数,表示从0号开始从后往前取
Python 表达式 | 结果 | 描述 |
li = [1 , 2, 3, 4] print(li[-2]) | 3 | 以1为0,往从后开始倒数 |
切片的使用(注意切片括号左边代表闭区间,右边代表开区间)
Python 表达式 | 结果 | 描述 |
li = [1,2,3,4,5,6] | ||
li[2:4] | 3,4 | 从索引2到索引3 |
li[:3] | 0,1,2,3 | 没有指定索引开头,默认从头(0号索引)开始引入 |
li[4:] | 5,6 | 没有指定索引结尾,默认是读取到最后 |
列表常见方法集合 :
# in 元素是否在列表中
cmp(list1,list2) 较两个列表的元素
len() 列表元素的个数
mix() 列表中元素的最大值
min() 列表中元素的最小值
list(seq) 将元组转换为列表
list.append() 在列表末尾添加新的对象
list.count() 统计某个元素在列表中出现的次数
list.extend(seq) 在列表末尾一次性追加另一个序列的多个元素
list.index() 从列表中找出某个值第一个匹配项的索引位置
list.pop() 移除列表中的一个元素
list.remove() 移除列表中某个值的第一个匹配项
list.reverse() 反向列表中元素
list.sort() 将原列表进行排序
元组
- 元组和列表非常类似,差别在于元组的第一级元素是不可改变的。
- 元组采用小括号进行表示,括号中元素与元素之间采用逗号分隔开。
元组常规写法展示 :
tup1 = ('physics', 'chemistry', 1997, 2000)
tup2 = (1, 2, 3, 4, 5 )
特别注意 : 当元组中只有一个元素是,需要在元素后面加一个括号 :
tu = ("yuanzu",)
元组的访问 :
元组的访问和列表一样,可以采用索引和切片。
元组的修改 :
元组的第几季元素不可修改,但是可以进行拼接 :
tup1 = (12, 34.56)
tup2 = ('abc', 'xyz')
# 以下修改元组元素操作是非法的。
# tup1[0] = 100
# 创建一个新的元组
tup3 = tup1 + tup2
print tup3
########### 运行结果 ###########
(12, 34.56, 'abc', 'xyz')
特别注意 :元组不可修改的只是一级元素 :
tu = ([["hefuhew","fewrf"],"fhewhf",1213])
tu[0][0] = 123
print(tu)
上面这段代码是正确的,我们修改的并非是元组里面的元素,而是元组中列表的元素,而列表的元素是可以修改的。
元组的删除 :
元组中的元素是不可删除的,但是整个元组却可以直接删除。
tup = ('physics', 'chemistry', 1997, 2000)
print tup
del tup
print "After deleting tup : "
print tup
###### 上面这段代码是合法的 ##################
元组运算符 :
Python 表达式 | 结果 | 描述 |
---|---|---|
len((1, 2, 3)) | 3 | 计算元素个数 |
(1, 2, 3) + (4, 5, 6) | (1, 2, 3, 4, 5, 6) | 连接 |
('Hi!',) * 4 | ('Hi!', 'Hi!', 'Hi!', 'Hi!') | 复制 |
3 in (1, 2, 3) | True | 元素是否存在 |
for x in (1, 2, 3): print x, | 1 2 3 | 迭代 |
同样元素的索引也可以是负数。
元组中常见方法的集合 :
cmp(tuple1,tuple2) 比较两个元组元素
len() 计算元组元素的个数
max() 返回元组中元素的最大值
min() 返回元组中元素的最小值
tuple(seq) 将列表转换为元组
补充 :
列表的遍历 :
采用for循环进行遍历
animals = ["tiger","cat","baozi"]
for it in animals :
print(it)
print(it+" looks like a cat!")
print("All of these animals look like a cat!")
采用rang()函数来生成列表
# # ###### 使用函数rang()
for value in range(1,5) : ##随机生成1-4的数字 括号左边是闭区间,右边是开区间
print(value)
# # ###### 使用rang()创建数字列表
even_numbers = list(range(1,6)) ### 按区间生成任意数字
print(even_numbers)
numbers = list(range(2,11,2)) ### 按步数生成任意数字
print(numbers)
squares = []
for value in range(1,11) : ### 使用rang()生成1~10的平方
squares.append(value**2)
print(squares)
列表解析(可以使得代码更加简洁)
# # ##### 列表解析 前面一个是放到列表中的参数,后面一个是提取参数的区间
squares = [value**2 for value in range(1,11)]
print(squares)