Python——列表和元组

列表和元组

都是用一个元素,可以表示很多数据

不同的是,列表是可变的,创建完后可以随时更改
而元组是不可变的,想要更改元素只能重新创建一个新的

列表

创建方法

python中有两种创建列表的方法

a = []
a = list()

可以在[]中指定列表的初始值

a = [1, 2, 3]

列表和java中的数组不同,python的列表可以存储不同类型的数据

a = [1, "hello", 1.0, True, [1, 2, 3]]

列表的访问

可以直接用print(a)来打印列表中的内容

pirnt(a)

还可以通过下标,来访问列表的指定位置的内容,下表从0开始,到列表的长度 - 1

print(a[1])

如果传入的是负数,例如-1,就相当于len-1

print(a[-1] == a[len - 1])

可以使用python的内建函数len()来获取列表的长度

print(len(a)

切片

切片操作是取出列表中一部分元素,也就是一个子列表

a = [1, 2, 3, 4]
print(a[1:3])

这样的话会打印下标为1和2的元素,也就是[1,3)区间

还可以省略边界

a = [1, 2, 3, 4]
print(a[1:])

上面这种写法就会从下标为1的元素一直打印到列表的末尾,也就是2,3,4
切片中的下标也可以输入负数,开头和结尾都省略

print(a[1:-1])
print(a[:])

切片还可以指定步长,也就是隔几个元素取一个元素,再加一个冒号,后面的数字就是步长,如果是1就相当于没设置步长,如果步长为负数,相当于从后往前取

print(a[1:10:1])
print(a[::2])

如果我们的边界设置超出了列表的长度,程序并不会报错,而是会打印到列表能打印的位置

列表的遍历

可以使用循环来遍历列表的所有元素

a = [1, 2, 3, 4]
for i in range(0,len(a)):
	print(a[i])

我们的列表也是一个可迭代对象,可以直接写在for循环中

a = [1, 2, 3, 4]
for i in a:
	print(i)

如果我们想要统一修改列表中的元素的值,则只能用第一种方法

for i in range(0, len(a)):
	a[i] += 1

列表的插入

使用append(),可以将内容添加到列表的末尾
需要注意的是,append并不是一个独立的函数,而是要搭配列表来使用的函数

在python中,需要和对象搭配使用的函数,称之为方法。
python中,对象就相当于变量,里面不仅可以存储数据,也可以有一些方法

a = [1, 2, 3]
a.append(4)

还可以使用insert,插入到列表的任意位置

列表名.insert(插入位置下标, 插入内容)
a = [1, 3, 4]
a.insert(1, 2) #向下标为1的位置插入2

如果插入的位置超出了列表的范围,那么将直接将元素插入到列表的末尾,而不是扩展列表到能够插入到长度

列表的查找

使用in,可以判断一个元素是否在列表中,例如下面这段代码,就是查看1是否在a列表中,结果将返回True

a = [1, 2, 3]
print(1 in a)

与之对应的,还有not in

print(1 not in a)

使用index方法,可以判断一个元素在列表中的下标是多少,如果元素不存在,不会像java一样返回-1,而是直接报错

a = [1, 2, 3]
print(a.index(2)) # 结果为1

列表的删除

使用pop(),可以删除列表的末尾元素,如果传入一个下标,那么会删除列表下标位置的元素

a = [1, 2, 3]
a.pop() # 会删除3
a.pop(1) # 会删除2

使用remove()方法,可以指定要删除的元素

a = [1, 2, 3]
a.remove(2) #删除2

列表的连接

使用+

a = [1, 2, 3]
b = [4, 5, 6]
c = a + b

c就是[1, 2, 3, 4, 5, 6]

使用extand(),可以将后一个列表拼接到前一个列表的里面

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

a就变成了[1, 2, 3, 4, 5, 6]
extend方法没有返回值,只是把参数中的列表拼接到调用者的后面,如果使用c = a.extend(b),就会返回None,这是一个特殊的变量,表示空

使用+=拼接

a = [1, 2, 3]
b = [4, 5, 6]
a += b

这种方法和extend效果类似

元组

创建元组

可以使用下面两种方法创建元组

a = (1, 2, 3)
b = tuple()

元组和列表一样,可以存储不同类型的数据

元组的访问

和列表一样,用下标访问,负数代表len-1,超出下标会报错

print(a[1])
print(a[-1])

使用切片,具体规则和列表一样

print(a[1:3])
print(a[:])
print(a[::1])

元组的遍历

和列表一样

a = (1, 2, 3, 4)
for i in a:
	print(i)

查找元组元素

和列表一样

print(3 in a)
print(a.index(1))

拼接元组

和列表一样

a = (1, 2, 3)
b = (4, 5, 6)
print(a + b)

需要注意的是,元组中的元素不能修改,因此不能使用下标重新赋值元组中的元素,不能append,pop,extend
这是因为,当我们使用函数进行传参时,如果用列表传过去,函数中有可能把列表中的内容修改了,而函数外部的列表中的内容也就被修改了。因此我们可以使用元组,避免修改
并且,元组是不可变对象,因此是可以哈希的(后面的博客会讲到)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值