列相关操作

列相关操作

一、列的相关操作

1)、数学运算: + / *

  • 1、列表1 +列表2 - 将列表1和列表2中元素合并成一个新的列表

  • 2、列表 * n / n*列表 - n个指定列表合并成一个新的列表(列表中的元素重复n次产生一个新的列表)

2)、比较运算符 : < > <= >= == !=

  • 1)比较相等: == !=
  • 2)比较大小: < > <= >=
    • 两个列表比较大小比较的是第一对不相等的元素的大小

3)、in和not in

  • 1)元素 in 列表 - 判断列表中是否存在指定元素
  • 2)元素 not in 列表 - 判断列表中是否不存在指定元素
print([10,20,30] == [20, 10, 30])    #False

list1 = [10,20,30]
list2 = [11,200]
print(list1 > list2)     #False


print(10 in [100,200])   # False
print(10 in [[10,100],200])    # False

# 已知一个列表保存了多个学生的姓名,要求去掉列表中重复的名字
names = ['小明', '张三', '李四', '张三', '张三', '小明', '王五', '王五']
new_names = []
for name in names:
  if name not in new_names:
    new_names.append(name)
print(new_names)

# 练习:提取两个列表的公共元素,产生一个新的列表
A = [10, 23, 89, 67, 10, 20]
B = [78, 90, 23, 88, 10]
list1 = []
for x in A:
  if x in B and x not in list1:
    list1.append(x)
print(list1)

二、列的相关函数

1、sum(列表) - 求列表中所有元素的和(要求列表中所有的元素都必须是数字)

  • 针对所有的数字序列都有效(包括range)
scores = [29,30,21]
print(sum(scores))

2、max、min

  • max(列表) - 求列表中值最大的元素

  • max(数据1,数据2,数据3…) - 求多个数据中的最大值

    scores = [29,20,12]
    print(max(scores))
    
    a,b,c = 29,18,79
    print(max(scores))
    

3、sorted(列表) - 将列表中的所有元素从小到达排序,产生一个新的列表(不会修改原列表)

  • sorted (列表,reverse = True) - 将列表中的所有的元素从大到小排序,产生一个新的列表(不会修改原列表)

    scores = [29, 30,28]
    new_scores = sorted (scores)
    print(new_scores) # [28,29,30]
    
    new_scores = sorted (scores,reverse = True)
    print(new_scores)  #[30,29,28]
    

4、list(序列) - 将指定数据转换成列表

  • 数据:必须是容器型数据类型的数据(str 、 range)

  • 所有的序列都可以转换成列表:转换的时候会将序列中的元素作为列表的元素

三、列表的相关方法

方法的使用方式: xxx . xxx()

列表相关方法: 列表.xxx()

  • 1、列表.clear() - 清空列表
  • 2、列表.copy - 复制指定的列表产生一个一模一样的新的列表并且返回
    • 列表[:] == 列表.copy() == 列表*1 == 列表+[]
  • 3、列表.count(元素) - 统计列表中指定元素的个数
  • 4、列表.extend(序列) - 将序列中的元素全部添加到列表的最后
nums = [29,30,23,34]
print(nums.count(9))   # 打印显示 0

a=[30,28]
a.extend([34,11])
print(a)    # [34,11,30,28]
  • 5、列表.index[元素] - 获取指定元素在列表中的下标值(0开始的下标值)

  • 6、列表.reverse() - 将列表倒序

    a=[30,28,11,23]
    print(a.index(28)) #1
    
    a=[30,28,11,23]
    a.reverse()
    print(a)    #[23,11,28,30]
    
    
  • 7、列表.sort()

    • 列表.sort(revers = True)

      a=[30,28,11,23]
      new_a = sorted(a)
      print(new_a,a)     #[11, 23, 28, 30] [30, 28, 11, 23]
      
      a=[30,28,11,23]
      a.sort()
      print(a)         #[11, 23, 28, 30]
      
      
      a=[30,28,11,23]
      a.sort(reverse=True)
      print(a)          [30, 28, 23, 11]
      

列表推导式 - 快速创建列表的表达式

  • 1、结构1:[表达式 for 变量 in 序列]

    #[表达式 for 变量 in 序列]  -  创建列表,列表中的元素就是让变量取序列中的值,取一个值就计算一次表示是的结果,这个结果就是列表的元素
    
    result = [10 for x in range(4)]
    print(result)  #[10,10,10,10]
    result = [10*x for x in range(4)]
    print(result)  #[0,10,20,30]
    
    #提取 nums的元素的个位数
    nums = [78,34,661,90,75]
    result = [ x % 10  for  x  in nums]
    print(result)  # [8, 4, 1, 0, 5]
    
    
  • 2、结构2: [表达式 for 变量 in 序列 if 条件语句]

    • 创建一个列表,列表的元素就是变量中去序列中取值,取一个值判断一次条件是否成立,成立就计算一次表达式结果,并且将结果作为列表的元素

      result = [x for x in range(10) if x % 2]
      print(result)  #[1,3,5,7,9]
      
      #if 语句结果是True,就不执行下一个代码;False就执行下一段代码
      
      #提取偶数中的个位数
      nums = [78,34,661,90,75]
      result = [x % 10 for x in nums if x % 2 == 0]
      print(result)
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值