python基础-列表与元组

python列表

[]表示列表,逗号分隔元素

a = ['apple','banana','cat','dog']
# a的类型
print(type(a)) # <class 'list'>
# 打印a
print(a) # ['apple', 'banana', 'cat', 'dog']

访问元素用下标访问,下标从0开始

'apple'是第0个,用a[0]表示
'cat' 是第2个,用a[2]表示
'apple'是第-4个,用a[-4]表示

a = ['apple','banana','cat','dog']
#获取第0个元素
print("a[0] = ", a[0]) # dog

列表添加元素

在末尾添加单个元素:

a.append(x):列表a末尾添加元素x

a = []
a.append(123)
a.append("Hello")
a.append(3.14)
print("a = ", a)# [123, "Hello", 3.14]

a = [1, 2, 3, 4, 5]
a.append(6)
print("a = ", a) # [1, 2, 3, 4, 5, 6]

在末尾添加多个元素:

a.expend(x):列表a末尾添加x,x为可迭代对象,包括列表、元组、字符串等,不可为单个数字。

a = []
a.extend([1, 2, 3])
a.extend([4, 5, 6])

在中间插入元素:

a.insert(idx, x):列表a在下标为idx位置插入元素x,原来下标大于等于idx的元素往右移动一个位置。

a = [0, 1, 2, 3, 4]
# 在下标为idx的位置插入x
a.insert(3,2.5)
print("a = ", a)

利用del删除列表中的元素

del a[idx]:删除列表a中下标为idx的元素

a = ['apple','banana','cat','dog']
del a[3]
print("a = ", a)# ['apple', 'banana', 'cat']

利用pop删除列表中的元素

a.pop(idx):删除列表a中下标为idx的元素
a.pop():删除列表a中最后一个元素

a = ['apple', 'banana', 'cat', 'dog']
x = a.pop(1)
print("x = ",x) # banana
print(a) # ['apple', 'cat', 'dog']

#pop不加参数,删除末尾元素
del_str = a.pop()
print("a = ", a)
print("输出元素为:", del_str)

根据值删除元素:

a.remove(x):删除列表a中的值为x的第一个元素

a = ['apple', 'banana', 'cat', 'dog', 'apple']
del_str = 'apple'
a.remove(del_str)
print("a = ", a) # ['banana', 'cat', 'dog', 'apple']

查找元素x

a.count(x):计算x在a中出现次数,如果未出现则为0,否则为出现次数
a.index(x, start, stop):计算元素x在列表a下标[ start, stop )中第一次出现的位置。

  • 要保证x必须在区间[start, stop)中存在,否则报错
  • start, stop不赋值,默认为在整个列表中查找
  • 只赋值start, stop默认为列表元素
a = ['apple', 'banana', 'cat', 'dog', 'apple', 'cat']
print(a.count('apple')) # 2

# 在整个列表中查找第一个'cat'
print(a.index('cat')) # 2
# 从下标3开始查找第一个'cat'
print(a.index('cat', 3)) # 5

翻转列表

a.reverse:列表a进行翻转

a = [1, 2, 3, 4, 5]
a.reverse()
print("a = ", a) # a = [5, 4, 3, 2, 1]
a.reverse()
print("a = ", a) # a = [1, 2, 3, 4, 5]

求出列表长度

len(a) :求出列表a的长度

a = [1, 2, 3, 4, 5]
# 输出a的长度
print(len(a)) # 5

操作列表

遍历整个列表

a = ['apple', 'banana', 'cat', 'dog']
for x in a:
	print(x)

利用for循环遍历列表,同时获取下标enumerate(a, start = 0)

a = ['apple', 'banana', 'cat', 'dog']
for idx, x in enumerate(a):
	print(idx, x)

列表操作符

+ :连接两个列表
a*x :a 是list,x是int,构成一个新列表,其内容为a复制x次

a = list(range(5))
print("a = ", a) # a = [0, 1, 2, 3, 4]
b = list(range(0, 10, 3))
print("b = ", b) # b = [0, 3, 6, 9] 
c = a + b
print("c = ", c) # c = [0, 1, 2, 3, 4, 0, 3, 6, 9]
d = a * 3
print("d = ", d) # d = [0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 0, 1, 2, 3, 4]

内置函数

sum(a):求序列a的和
max(a):求序列a中的最大值
min(a):求序列a中的最小值

a = [1, 3, 5, 7, 9]
print("sum(a) = ", sum(a)) # sum(a) = 25
print("max(a) = ", max(a)) # max(a) = 9
print("min(a) = ", min(a)) # min(a) = 1

列表解析式

  • 可以基于已有列表生成相关的新列表
    [expression for member in iterable]对于可迭代对象iterable的每个元素member,都执行expression构成新的列表。
a = [x**2 for x in range(11)]
print(a) # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

a = [1, 2, 3, 4]
b = [3, 4, 5, 6]
c = [a[i] * b[i] for i in range(4)]
print(c) # [3, 8, 15, 24]
  • 可以基于已有列表筛选并生成相关的新列表
    [expression for member in iterable if conditional]对于可迭代对象iterable的每个元素menber,如果满足条件conditional。执行expression构成新的列表
a = [x**2 for x in range(11) if x % 2 == 0]
print(a) # [0, 4, 16, 36, 64, 100]

列表切片

切片:列表的部分元素组成的新列表
a[start🔚step]
start :切片的下标起点(包含起点),默认为0
end:切片的下标终点(不包括终点),默认为列表长度
step:切片的步长,默认为1

a = ['apple', 'banana', 'cat', 'dog', 'egg']

b = a[2:4]
print('b = ', b) # b = ['cat', 'dog', 'egg']

c = a[::2]
print('c = ', c) # c = ['apple', 'cat', 'egg']

d = a[:3]
print('d = ', d) # d = ['apple', 'banana', 'cat']

e = a[-3:]
print('e = ', e) # e = ['cat', 'dog', 'egg']

复制列表

列表的赋值不等于复制,列表的赋值只是“引用”,此时相当于两个变量名代表同一个列表
正确复制的办法:

  • 利用切片:b=a[:]
  • 利用copy函数:b=a.copy()
a = ['apple', 'banana', 'cat', 'dog', 'egg']
#直接赋值,无法完成列表的复制
b = a
b[0] = "hello"
print("b = ", b) # b = ['hello', 'banana', 'cat', 'dog', 'egg']
print("a = ", a) # a = ['hello', 'banana', 'cat', 'dog', 'egg']

# 使用切片复制
a = ['apple', 'banana', 'cat', 'dog', 'egg']
b = a[:]
b[0] = 'Hello'
print("b = ", b) # b = ['Hello', 'banana', 'cat', 'dog', 'egg']
print("a = ", a) # a = ['apple', 'banana', 'cat', 'dog', 'egg']

# 使用copy复制
a = ['apple', 'banana', 'cat', 'dog', 'egg']
b = a.copy()
b[0] = 'Hello'
print("b = ", b) # b = ['Hello', 'banana', 'cat', 'dog', 'egg']
print("a = ", a) # a = ['apple', 'banana', 'cat', 'dog', 'egg']

python元组

  • 元组:与列表类似,是由一系列按额定顺序排列的元素组成
  • 用()创建,或者用tuple创建
  • 与List区别
    • List是可修改的序列,而元组是不可修改的,即创建无法修改当前元组
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值