python列表详解

python列表详解

这里对列表常用方法做了一个整理,也是便于必要时查阅吧。


  • 1 列表的创建与删除
    • 列表可以通过“[]”创建或者list函数转化。
      listname=['a','b']
      listname = []		# 创建空列表
      listname = list(range(0,100,2))		# 通过list函数转化得到列表
      del listname		# 删除列表
      

  • 2 列表的一些方法
    • append:尾部添加单个元素
      ls = []
      for each in range(100):
      	if each % 2 == 0:
      		ls.append(each)
      
    • extend:尾部添加一个列表所有元素
      ls = [1,2,3]
      ls_extend = [4,5,6]
      ls.extend(ls_extend)
      
      '''也可以在中间位置插入一个列表的所有元素'''
      ls[1:1] = ls_extend
      
    • remove:删除元素
      ls = [1,2,3]
      del ls[2]		# 删除指定索引列表元素:3
      ls.remove(2)		# 移除列表元素:2
      
    • pop:删除指定index元素,默认是最后一个,并返回删除元素
      ls = [1,2,3]
      ls.pop(1)
      # out:2
      
    • reverse:列表元素反转
      ls = [1,5,2]
      ls.reverse()
      print(ls)
      # out:[2,5,1]
      
    • index:获取指定元素的索引号
      ls =  [1,2,3]
      ls.index(2)
      # out:1
      
    • count:获取列表中元素出现的次数
      ls = [1,2,1,5,2]
      ls.count(2)
      # out:2
      
    • sort:排序
      key用于提取比较的关键字,比如长度(lambda x : len(x))。reserve=Flase 升序,默认为升序。True降序;函数本身不会返回
      ls = [1,3,8,2]
      ls.sort(key=lambda x:x%2,reverse=True)
      '''sorted方法不会改变原来列表排序'''
      ls_1 = sorted(ls,key=None,reverse=True)
      
    • insert:指定位置插入元素
      ls.insert(index,object):index-插入的索引位置
      ls = [1,2,4]
      ls.insert(1,88)
      print(ls)
      # out:1,88,2,4
      
    • min、max、sum:最小值、最大值、求和(元素为数值型)
      ls = [1,2,4]
      ls_sum = sum(ls)
      ls_min = min(ls)
      ls_max = max(ls)
      
    • 修改列表元素
      ls = [1,2,3]
      ls[1] = 88
      print(ls)
      # out: [1,88,3]
      
    • 列表切片
      左闭右开,第一个参数为起始位置,第二个参数为结束位置(开),如果为负表示倒数第几个,第三个参数为切片间隔,如果为负数表示逆序切片,可以利用这个反转列表元素顺序。
      ls = [1,2,4,7,88]
      ls[:2]
      # out:[1,2]
      ls[:-1]
      # out: [1,2,4,7]
      ls[::-1]
      # out:[88,7,4,2,1]
      
    • 二维列表及其切片
      a=[['a','b','c'],[1,2,3]]
      a[1][2]
      # out:3
      
    • tuple:将列表转化为元组(元组元素不可变)
      ls = [1,2,3]
      tup = tuple(ls)
      print(tup)
      # out: (1,2,3)
      

  • 3 列表推导式
    表达式expression也可以使用自定义函数。比如f(x)
    • [expression for var in list]
      a =[1,3,5,6,9] 
      b = [x**2 for x in a]
      
      def f(data):
      	return data + 1
      b = [f(x) for x in a]		#使用自定义函数
      
    • [expression for var in list if condition]
      a =[1,3,5,6,9] 
      b = [x**2 for x in a if x > 3]
      
    • [expression if condition else expression for var in list]
      a =[1,3,5,6,9]
      b = ['奇数' if x%2 != 0 else '偶数' for x in a]
      
    • [x for a in b for x in a]:二维列表推导式应用
      '''对列表中元素为列表的所有子元素求和'''
      l = [[1,2],1,[1,2,3],4,[6,7]]
      s = sum([x for y in l if isinstance(y,list) for x in y])
      '''我们把列表推导式展开,这样获取变得好结构清楚些'''
      def list_expend():
      	ls = []
      	for y in l:
      		if isinstance(y,list):
      			for x in y:
      				ls.append(x)
      	return ls
      

  • 4. 列表拆包
    某些情况下,我们可能需要取列表中的几个值,这样我们可以使用了列表切片来逐一赋值,此外我们还可以使用‘*’列表拆包一步到位。
    prop = ['张三','男','70kg',18,'178cm']
    '''我们获取列表中的姓名和性别元素'''
    name,sex,*_ = prop
    print(name,sex)
    # out:('张三', '男')
    '''姓名,年龄,身高'''
    name,*_,age,height = prop
    print(name,age,height)
    # out:('张三', 18, '178cm')
    
    '''成绩:去除最大值最小值='''
    grade = [80,75,23,100,85]
    _,*grade_valid,_ = sorted(grade) 
    print(grade_valid)
    # out:[75, 80, 85]
    
  • 5.其他
  • 通过slice生成可切片对象,赋值给变量,很多时候往往使得代码可读性更好,比如下面:
    dt = '20190714'
    year = slice(0,4)	# 生成切片对象slice
    print(dt[year])
    

注意事项:部分函数是没有返回值的,大家将一些方法赋值给变量,变量结果可能是空哦~~

你可能感兴趣的:(Python)