Python List 列表

来源:互联网 发布:java poi excel 编辑:程序博客网 时间:2024/06/03 19:48
#列表的创建、增删改查#创建l = [] #空列表l = [1,'a',[2,'b']]l = list('hello')l = list(range(4))l = '1,2,3,4'.split(',')#增加l = [1,2,3]l.append('a')l.append(['a'])l.extend([4,5])l.extend('k') #l.extend() 参数是一个可迭代对象l.insert(1,'b')print(l)l1 = [4,5]l2 = l1 + ['c','d']l1 += ['c','d']l1*3#s.append(x) 在列表尾部追加单个对象x。使用多个参数会引起异常#s.extend(x) x将列表L中的表项添加到列表中。返回None#s.insert(i, x) 在索引为i的元素前插入对象x。如list.insert(0,x)在第一项前插入对象。返回None。#删除l1 = [1, 2, 3, 4, 5, 6, 1, 3]del l[0]del l[0:2]l1.remove(1) #得到[2, 3, 4, 5, 6, 1, 3] 删除第一个,remove对应值查无,将跑ValueErrora = l1.pop(1)b = l1.pop()#s.pop([i]) x删除列表中索引为x的表项,并返回该表项的值。若未指定索引,pop返回列表最后一项。#s.remove(x)  删除列表中匹配对象x的第一个元素。匹配元素时产生异常。返回None。#修改l1 = [1, 2, 3, 4]l1[0] = 0   #[0,2,3,4]l1[0:2] = [7,8,9]  #[7,8,9,3,4]l1[:] = []   #清空了#查找计数l1 = [1, 2, 3, 4,1] l1[0]l1[-1]1 in l1  #True1 not in l1 #Falsel1 = [1, 2, 3, 4]l1.index(1)    #0#l1.index(5)    #特别注意,当值不存在于列表,用index将抛ValueErrorl1.count(1)  #2#切片l1 =  [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]l1[0:2]   #[1, 2],   取区间[i,j) ,左闭右开l1[:2]     #同上,可省略第一位l1[2:]     #[3, 4, 5, 6, 7, 8, 9, 10, 11]l1[2:-1]   #[3, 4, 5, 6, 7, 8, 9, 10]l1[:]       #同l1,相当于复制一份 l1[::2]   #步长2,[1, 3, 5, 7, 9, 11]l1[0:7:2]  #[1, 3, 5, 7]l1[7:0:-2]  #[8, 6, 4, 2]   注意步长为负、理解起来相当于从7到1,倒序步长2#排序l1 = [5,3,2,1,4,6]l1.sort()"""     sort(cmp,key,reverse)cmp,比较函数,接受两个参数,小于时返回负,大于返回正,相等返回0key,指定排序键reverse,指定是否反序"""l1 = [(1,99),(3,97),(2,98),(4,96)]l1.sort(key = lambda x : x[1]) #[(4, 96), (3, 97), (2, 98), (1, 99)]l1.sort(key=lambda x: x[1], reverse=True) #[(1, 99), (2, 98), (3, 97), (4, 96)]l = ['A','D','b','G','C']sorted(l,key=str.lower,reverse=True)# ['G', 'D', 'C', 'b', 'A']#反序l.reverse()#l1反序reversed(l)#返回一个iterator#l[::-1]可以达到一样的效果,但是这个是返回一个新的列表#遍历l1 = [1, 2, 3, 4, 5]for i in l1:print(i)#元素在第几个位置for index,value in enumerate(l1):print(index,value)#其他len(l1) #长度l1*3 #重复l1 = []  #清空l1[:] = [] #清空del l1[:] #清空l2 = l1[:] #复制列表#列表解析doubled_odds = []for n in range(10):if n % 2 == 1:doubled_odds.append(n * 2)numbers=range(10)doubled_odds = [n * 2 for n in numbers if n % 2 == 1]doubled_odds = [n * 2 for n in numbers if n % 2 == 1]"""    复制给新列表赋值的语句    把我们append到新列表的表达式复制过来    复制for循环的那一行,除去末尾的:    复制if语句,同样去掉:"""#嵌套循环matrix = [[1,2],[3,4]]flattened = []for row in matrix:for n in row:flattened.append(n)flattened = [n for row in matrix for n in row]#其他推导式  这个原则同样适用于集合推导和字典推导。words = ['I','Love','Python']first_letters = set()for w in words:first_letters.add(w[0])first_letters = {w[0]for w in words}d = {'a':1,'b':2,'c':3}nd= {}for key,value in d.items():nd[value] = keyprint(nd)nd={}nd = {value:key for key,value in d.items()}print(nd)#总结:""" 当你努力去写一个推导式的时候,不要慌,从复制粘贴for循环中的内容着手new_things = []for ITEM in old_things:    if condition_based_on(ITEM):        new_things.append("something with " + ITEM)推导式:new_things = ["something with " + ITEM for ITEM in old_things if condition_based_on(ITEM)]"""
  1. list的方法  
  2. L.append(var)   #追加元素  
  3. L.insert(index,var)  
  4. L.pop(var)      #返回最后一个元素,并从list中删除之  
  5. L.remove(var)   #删除第一次出现的该元素  
  6. L.count(var)    #该元素在列表中出现的个数  
  7. L.index(var)    #该元素的位置,无则抛异常   
  8. L.extend(list)  #追加list,即合并list到L上  
  9. L.sort()        #排序  
  10. L.reverse()     #倒序