不知道大家了解过其他的编程语言没有,列表(list)其实就是其他语言的数组一样的,只不过在北方叫馍头子,在南方叫馒头而已,其实都一样的。
列表
作用:多个装备,多个爱好,多门课程,多个女朋友等
定义:[] 内可以有多个任意类型的值,逗号分隔
对于列表既然我们对列表的里面定义了元素,那么换而言之 我们是可以对它的里面进行增、删、改、查的
append---> 追加(在列表的最后的元素后面添加)
hobbies = ['play', 'eat', 'sleep'] hobbies.append('swim') print(hobbies)
不能直接print出append的过程,因为那样打印出来的是添加的过程是None
li =[] print(li.append('alex'))
insert------------->按照数组中的下标添加(插入)
因为append是只能在最后面追加 在顾腚位置添加元素 所以我们需要有一个能选择位置的添加,所以就出来了insert
li = [1, 'a', 'b', 'a', 2,3] li.insert(2, 'xiaosna') print(li)
extend------------>把两个数组的的内容相加或者把一个元素添加到列表中 也是放在最后(迭代添加)切记一个int类型的无法添加 因为不是迭代添加(迭代添加就是一次一次的添加)
n = [1, 3, 4 , 'b', 'n'] n.extend('7') #大家看这个7必须用写成字符串类型的不然就不可以使用entend print(n)
删除:
pop------>默认删除列表中的最后一个元素,也可以指定索引(下标)来进行删除
默认删除:
li = [1, 'a', 'b', 'a', 2,3] li.pop() print(li)
按照索引(下标)来删除
li = [1, 'a', 'b', 'a', 2,3] li.pop(3) #删除下标是3的元素 print(li)
pop也是增删改查中唯一一个可以有返回值的其他的打印增删改查的过程的返回值的时候都会报错 但是这个不会
按照元素删除------>remove 可以指定某个元素来删除,如果列表中有两个a但是你如果只是选中一个a那么只能删除第一个a
li = [1, 'a', 'b', 'a', 2,3] li.remove('a') #只能删除第一个的a因为 rint(li)
清空所有的内容-------> clear 把列表中的所有的内容全部的清空
li = [1, 'a', 'b', 'a', 2,3] li.clear() print(li)
既可以清空列表也可以指定删除-----> del 直接把列表删除 也可以指定下标和切片去删除
删除列表:
li = [1, 'a', 'b', 'a', 2,3] del li print(li)
根据下标来删除:
li = [1, 'a', 'b', 'a', 2,3] del li[3] #根据下标来删除 删除列表中第三个元素 print(li)
根据切片去删除:
li = [1, 'a', 'b', 'a', 2,3] del li [0:3:2] #这个是根据切片和步长去删除的 print(li)
修改:
li = [1, 'a', 'b', 'a', 2,3] li[3]='Q' #直接把下标为3的元素给替换成Q print(li)
也可以把整个切片给替换掉:
li = [1, 'a', 'b', 'a', 2,3] li[:3] = 'Q' #把0到3的切片内的元素给替换成Q print(li)
len 长度 它和下标不一样下标是从0 开始的len是从1开始的 和java的一样 大家别记混了
li = [1, 2, 1, 7, 5, 4, 9, 8, 3] print(len(li))
tuple 元组:一般不可以对元组内的单个元素进行操作:
l = (1,1,e,4,f) #这里面的内容不可以进行修改但是可以查询
但是也可以对元组进行操作:当元组内包含字典或者列表的时候你可以修改包含的列表或者字典 其他的不可以修改(儿子不能改,孙子可能改)
python对list去重的各种方法
不使用set去重: ids = [1,2,3,3,4,2,3,4,5,6,1] news_ids = [] for id in ids: if id not in news_ids: news_ids.append(id) print news_ids 使用set去重: ids = [1,4,3,3,4,2,3,4,5,6,1] ids = list(set(ids)) 按照原来的索引排序 ids = [1,4,3,3,4,2,3,4,5,6,1] news_ids = list(set(ids)) news_ids.sort(key=ids.index) 也可以使用: In [5]: ids = [1,4,3,3,4,2,3,4,5,6,1] In [6]: func = lambda x,y:x if y in x else x + [y] In [7]: reduce(func, [[], ] + ids) Out[7]: [1, 4, 3, 2, 5, 6]