序列
索引
i = [1, 2, 3, 4, 5]
i[0] = 1
i[-1] = 5
切片
i[0:4:2] #[1, 3]
i[0:4] #[1, 2, 3, 4]
i[:] #[1, 2, 3, 4, 5]
序列相加
i = [1, 2, 3, 4, 5]
j = [‘a’, ‘b’, ‘c’, ‘d’]
k = i + j
k #[1, 2, 3, 4, 5, ‘a’, ‘b’, ‘c’, ‘d’]
乘法
i = [1, 2, 3]
j = i * 3
j #[1, 2, 3, 1, 2, 3, 1, 2, 3]
包含/不包含
i = [1, 2, 3, 4, 5]
1 in i #True
1 not in i #False
长度/最大值/最小值
i = [1, 2, 3, 4, 5]
len(i) #5
max(i) #5
min(i) #1
列表
创建列表
i = [1, 2, 3, 4, 5]
i = [] #空列表
list(range(10,20,2)) #[10, 12, 14, 16, 18]
删除列表
del i #python自带垃圾回收,即使不手动删除也会回收
遍历列表
for item in listname:
print(item)
for index,item in enumerate(listname):
print(index,item) #使用enumerate可以打印元素值和其索引
添加列表元素
listname.append(obj)
listname.extend(seq) #seq列表的内容全部追加到listname的后面
删除列表元素
i = [1, 2, 3, 4, 5]
del i[-1] #根据索引删除列表最后一个元素
if i.count(2) > 0: #通过判断元素出现的次数,判断元素是否存在
i.remove(2) #根据元素值删除元素 [1,3, 4, 5]
列表统计计算
listname.count(obj) #获取元素出现的次数
listname.index(obj) #获取元素首次出现的下标
sum(iterable, start) #列表的元素和 + start(default = 0)
列表排序
listname.sort(key=None, reverse=False)
sorted(iterable, key=None, reverse=False)
#False:升序,True:降序
列表推导式
根据指定范围生成列表
list = [Expression for var in range]
例:randomnumber = [random.randint(10,100) for i in range(10)]
#[65, 44, 87, 64, 30, 40, 62, 79, 17, 36]
根据列表生成新列表
newlist = [Expression for var in list]
例:price = [1200, 5330, 2988, 6200, 1998, 8888]
sale = [int(x * 0.5) for x in price]
#[600, 2665, 1494, 3100, 999, 4444]
从列表中选择符合条件的元素组成新列表
newlist = [Expression for var in list if condition]
例:sale = [x for x in prece if x > 5000]
#[5330, 6200, 8888]
二维列表
直接定义
listname = [[1,2,3],
[4,5,6],
[7,8,9]]
使用for循环创建
arr = []
for i in range(2):
arr.append([])
for j in range(5):
arr[i].append(j)
#[[0,1,2,3,4],
[0,1,2,3,4]]
元组
元组为不可变序列
元组创建
tuplename = (1, 2, 3, 4, 5)
#类型可以不同
tuplename = (‘python’, 500, (‘abc’, ‘def’), [‘ijk’, ‘opq’])
#小括号不是必须的,只要以逗号隔开,即认为是元组
tuplename = ‘python’, 500, (‘abc’, ‘def’), [‘ijk’, ‘opq’]
#如果创建的元组只包含一个元素,需要在最后加一个逗号
>>> i = 500,
>type(i)
<class 'tuple'>
>>> i = 500
>>> type(i)
<class 'int'>
>>> i = '123'
>>> type(i)
<class 'str'>
>>> i = '123',
>>> type(i)
<class 'tuple'>
创建空元组
emptytuple = ()
用于当函数参数或返回值类型为元组类型时使用
创建数值元组
tuple(data)
data可以为range对象,字符串,元组
例:tuple(range(10, 20, 2))
#(10, 12, 14, 16, 18)
删除元组
del tuplename #python会自动回收
修改元组
元组为不可变序列,不能修改单个元素
可以重新赋值
i = (1, 2, 3)
i = (4, 5, 6)
可以连接,连接内容必须都是元组
i = (1, 2, 3, 4)
j = 5, #如果没有逗号会报错
k = i + j
#(1, 2, 3, 4, 5)
元组推导式
>>>randomnumber = (random.randint(10, 100) for i in range(10))
>>> type(randomnumber) #生成了一个生成器对象
<class 'generator'>
>>> randomnumber = tuple(randomnumber) #转换成列表可以使用list(randomnumber)
>>> type(randomnumber)
<class 'tuple'>
>>> randomnumber
(27, 99, 48, 53, 37, 63, 38, 100, 11, 40)
如果要直接使用生成器对象,可以通过for循环遍历,或者使用 next()方法进行遍历
>>>number = (i for i in range(3))
>>>print(number.__next__())
>0
>>>print(number.__next__())
>1
>>>number = tuple(number)
>>>print(number)
>(2,)
原生成器对象在遍历之后,遍历过的元素就不再存在,转换之后元组中只剩一个元素