列表
几个特殊之处:
1.python的列表中可以保存任意的对象
my_list = ['hello',True,123,None,[1,2,3],print]
2.python的索引可以是负数,-1表示倒数第一个,-2表示倒数第二个
列表的切片
切片指从现有列表中,获取一个新列表,不会包括结束位置的元素
语法:列表[起始:结束]
print(stus[1:]) 无结束位置,则会一直截取到最后
print(stus[:3]) 无起始位置,则会从第一个元素开始截取
print(stus[:]) 全无,则相当于创建了一个列表的副本
print(stus)
语法:列表[起始:结束:步长]
步长表示,每次获取元素的间隔,默认值是1
列表的其他操作 嗯跟其他语言差不多吧,没啥特别的
+可以将两个列表拼接为一个列表
* 可以将列表重复指定的次数
in / not in / len() / min() / max() / s.index() / s.count()
list1=[1,2,3]
list2=[4,5,6]
_list=list1+list2
isInList = 2 in list1
列表元素的修改
直接改:通过索引改 list1[1]=5
通过del关键字删除元素 del list1[2]
通过切片来改,(如果不设置步长),新元素的个数不需要和切片中元素的个数一致
stus = ['孙悟空','猪八戒','沙和尚','唐僧','蜘蛛精','白骨精']
stus[0:2] = ['牛魔王','红孩儿','二郎神','铁扇公主']
# 会替换掉 '孙悟空','猪八戒'
通过切片来删除元素
列表的方法
# s.append(x) 向列表的最后添加一个元素
# s.insert(i,x) 向列表的指定index插入一个元素
# s.extend(t) 向列表的最后添加一个新列表
# s.clear() 清空列表
# s.pop(i) 根据索引删除,并返回被删除的元素,x为空,则删除最后一个元素
# s.remove(x) 根据元素值删除,如果相同值有多个,只会删除第一个
# s.reverse() 反转列表,倒序
# s.sort() 排序,默认是升序排列, 如果需要降序,则 s.sort(reverse=True)
遍历列表
#通过while循环来遍历列表(比较少用吧~~~~~~~~):
i = 0
while i < len(s):
print(s[i])
i += 1
#通过for循环来遍历列表:
for _s in ss :
print(_s)
range()
# range()是一个函数,它会生成一组自然数序列
它有啥用?
一般配合list使用!
for i in range(30):
print(i)
r = range(5) # 生成一个这样的序列[0,1,2,3,4]
r = range(0,10,2) # 生成 [0, 2, 4, 6, 8]
r = range(10,0,-1) # [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
print(list(r))
元组 tuple
元组是一个不可变的序列
它的操作的方式基本上和列表是一致的
所以你在操作元组时,就把元组当成是一个不可变的列表就ok了
_tuple = (1,2,3,4,5) #括号可以省略
元组的解包
(解构)
解包指就是将元组当中每一个元素都赋值给一个变量
a,b,c,d = _tuple
a,b=b,a #交换值
# 在对一个元组进行解包时,变量的数量必须和元组中的元素的数量一致
# 也可以在变量前边添加一个*,这样变量将会获取元组中所有剩余的元素
a , b , *c = _tuple
a , *b , c = _tuple
#只能出现一个*