第五章 掌握Python的列表类型

1.1 掌握列表的基础概念

 

理解列表类型(list)
列表类型是一种数据集合,将集合中的元素按照先后顺序进行排序。Python的列表类型是用[]括号来表示,里面的元素用英文逗号隔开,列表里面可以包含任意元素的数据类型(num = ['abc',123,True,2.0])
列表的数据结构同字符串一样,都是线性结构,每个元素保存在相应的内存中,可以用索引调用这块内存。
例:num = ['abc',123,0.7,True]  print(num[2])  # 0.7

 

遍历可迭代对象
简单数据类型都不可迭代(int float bool),对于可迭代的对象,可用for循环进行遍历

 

2.1 掌握列表的操作符

 

列表常用的操作符
[]:索引访问列表,可以给列表中指定元素赋值(相当于修改)
例:num = [1,2,3]  num[0] = 4  print(num[:])  #  [4,2,3]
[:]:切片操作,和字符串的一样。返回一个新的列表。
例:num = [1,2,3]  print(num[0:2])  #  [1,2]
+:列表的加法,合并两个列表的元素到一个新的列表。
例:num1 = [1,2] num2 = [2,3] num = num1 + num2  #  [1,2,2,3]
*:对列表进行重复输出,返回一个新的列表。
例:num1 = [1,2] num = num1 * 2  # num = [1,2,1,2]
in:判断是否存在列表中。返回bool值。
例:num1 = 4 num2 = [1,2,3] print(num1 in num2)  # False
列表的关系运算:
bool = list1 > list2。列表的关系运算是按序的,从第一个元素开始比较,根据元素的大小来决定True或False
只有当两个列表相对应的值都一样,才会等于
例如:num1 = [1,2]  num2 = [1,3] print(num1>num2)  # False 
3.1 掌握列表的操作方法

 

列表常用的操作方法
list.append(object) :将object添加到list的尾部 。
例:num = [0,1] num.append(2) print(num)  # num = [0,1,2]
list.insert(index,object):将object添加到index位置,假如超出list的最大索引,则添加在尾部。
例:num = [0,1] num.insert(0,2)     #  num = [2,1]
list.extend(可迭代对象):将可迭代对象逐个添加到list。
例:num = [ ]  num.extend('abc')  # num = ['a','b','c']
list.index(object,[start,[stop]]):查找列表中object的位置,可以设定搜索区间,star为起始位置,stop为结束位置(不写则默认列表长度)。
例:num = ['a','b','c']  print(num.index('a'))  # 0  也可写成 print(num.index('a',0,2)
list.count(value):统计value在list中出现的次数。
例:num = [1,1,1,2] print(num.count(1)) # 3
list.pop([index]):删除list中索引index对应的元素值。index默认最大索引值(最尾部)。例:num = [1,2]  num.pop()   # num=[1]  也可以这样写num.pop(1)
list.remove(value):删除list中的value。 
例:num = ['a','b'] num.remove('a') # num = ['b'] 
list.clear():一键清空list里的所有元素。
例:num = [1,2,3] num.clear()  # num = [] 

 

与列表有关的其他方法
len(list):返回列表中元素的数目。 
例:list = [1,2,3] print(len(list))  # 3
list.sort(key=True,reverse=False):如果不带任何参数,则原地升序排序。设置了reverse值为False,则降序排序。
例:num = [1,2,6,5,4,3]  print(num.sort())  # [1,2,3,4,5,6]  如果指定了reverse,num.sort(reverse = False)  #  [6,5,4,3,2,1]
str.join(list):如果list里全是字符串,则用str拼接所有元素为一个新的字符串。
例:num = ['a','b','b'] print('h'.join(num))  #  ahbhc

 

4.1 掌握列表的推导式

 

什么是列表推导式
由已有的可迭代对象,来生成一个新的列表(其实有点类似三元运算,简化for循环赋值)
上面代码用推导式表达为num = [_ for _ in range(5)]
语法:[element for element in 可迭代对象]

 

列表推导式的复杂结构
1.包含if的for循环列表推导式:
语法:[element if element in list if 表达式]
例子:
num = [ _ for _ in range(5) if _ % 2 == 0]  # 生成一个0-4范围取偶数的列表,可看成以下代码

2.包含嵌套for循环的列表推导式:

语法:[element for x in 可迭代对象 for y in 可迭代对象]

例子:

num = [ x+y for x in [1,2,3] for y in [1,2,3]]  # [2, 3, 4, 3, 4, 5, 4, 5, 6]

可转换成:

 

3.包含if的嵌套for循环的列表推导式:

语法:[element for x in list if 表达式 for y in list if 表达式]

例子:

num = [x+y for x in range(1,4) if x%2 != 0 for y in range(1,4) if y%2 == 0]

可转换成:

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值