python基础:列表与元组

列表的概念

举例:

list1=[10,20,30,40]
list2=['a','b','v']
list3=[10,'school',(10,20),[30,40],{'b':'book'}]
print(list1)
print(list2)
print(list3)

[10, 20, 30, 40]
[‘a’, ‘b’, ‘v’]
[10, ‘school’, (10, 20), [30, 40], {‘b’: ‘book’}]
列表相当于java中的数组,但是它更强大,可以存放任意数据类型

修改列表

列表属于可变对象,它的值是可以进行修改的。
list1[0]=11
反例:字符串属于不可变对象,里面的值不能被修改

str1='abc'
str1[0]='b'
print(str1)

报错:
TypeError: ‘str’ object does not support item assignment
修改里面的子列表:
list3[3][0]=11 对于子列表,要多用一次下标
元组是不可变对象
print(list3)

[10, ‘school’, (10, 20), [11, 40], {‘b’: ‘book’}]

增加列表中的值

1.append增加一个值到列表末尾
如果:
list1=[10,20,30,40]
则:
list1.append(41)
print(list1)

[10, 20, 30, 40,41]
2.insert 增加值到具体位置
list1.insert(0,100) 增加到第0位(第一个表示下标位数,第二个表示的是添加的值)
print(list1)
[100,10, 20, 30, 40]
可以添加其他类型
list1.insert(0,‘添加一个值’)
[‘添加一个值’, 10, 20, 30, 40]
补充一下:
如果添加的值下标很大,则会被添加到末尾,此时相当于append
添加一个小一些的 负二位
list1.insert(-2,-999)
[‘添加一个值’, 22, 11, ‘a’, -999, ‘b’, ‘c’]
3.extend 这种方式实际是列表的拼接
1>拼接
list1.extend([22,11])
print(list1)
[10,20,30,40,22,11]
2>拼接:字符串可以被拆分
list1.extend(‘abc’)
print(list1)
[10,20,30,40,22,11, ‘a’, ‘b’, ‘c’]
3>数字不能被拆分然后拼接
list1.extend(123)
print(list1)

TypeError: ‘int’ object is not iterable

删除列表中的值

1.pop
list1=[10,20,30,40]
1>不加参数时,默认删除最后一位
list1.pop()
print(list1)
[10,20,30]
2>也可以加一个下标,删除指定位置
list1.pop(1)
[10,30,40]
3>pop删除的值,可以用变量来接收
b=list1.pop()
print(b)
40
2.remove 删除效率比较低,一个个比对
当有多个相同的值时,只删除第一个值
list1.remove(30)
print(list1)
循环之后,遍历可以全部删除
3.del
del list1[0] 删掉list1的第0位
print(list1)
甚至可以 del list1
name ‘list1’ is not defined

列表中的切片

打印列表的前两位:左开右闭,
list1=[10,20,30,40]
print(list1[0:2])
[10,20]
切片不会改变原来的列表
1.反转这个列表:起始值和终止值全取,步长为负1
print(list1[::-1])
2.列表的排序
list2.sort() 永久排序
print(list2)
列表中,字母,数字都可以被排序
3.临时排序
print(sorted(list2)
4.倒序
**前提:**必须得是同一种类型的,比如数字排序有字符串就不行
TypeError: ‘<’ not supported between instances of ‘list’ and ‘dict’
list2.sort(reverse=True)
list2.sort(reverse=True)
[45, 30, 4, 1, -3, -377]

元组

元组是不可变对象,其他与列表一致
1.不可增删改,但是有切片或者下标
比如,单价,工资等数字就是不想被人改掉
tuple1=(11,3,4,66,77,77,899)
print(tuple1[0:3])
(11, 3, 4)
2.如果:元组中只有一个值
tuple2=(89,)
print(type(tuple2))
不加后面的逗号,它的类型会被判定为是int,如果加了逗号,则会被判定为是元组。
3.如果元组中有子列表,子列表能否修改?能
tuple3=(10,3,2,3,[13,45,67])
tuple3[4][0]=900
print(tuple3)
则:
(10, 3, 2, 3, [900, 45, 67])

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值