列表常用函数及列表推导式

列表常用函数及列表推导式

列表相关函数有很多,我在这只分享一下常用的几个函数。

常用函数

  1. min、max — 求最小/最大值

    用法:max(序列) / min(序列);
    使用时,序列中元素类型一致。且具有可比性。

    numbers = [12,23,45,56,78,2,4,5]
    print(min(numbers)) #2
    print(max(numbers)) #78
    
  2. sum — 求数字序列中元素的和

用法:sum(序列);

print(sum(numbers)) #225
  1. sorted — 排序

产生新列表保存排序后的列表,原列表不变

sorted(序列,reverse=True)   #逆序
print(sorted(numbers))  #[2, 4, 5, 12, 23, 45, 56, 78]
# new_numbers = sorted(numbers)
print(numbers)  #[12, 23, 45, 56, 78, 2, 4, 5]
# 就在原列表中排序,原列表改变
numbers.sort()
print(numbers) #[2, 4, 5, 12, 23, 45, 56, 78]
  1. len — 获取序列中元素个数

用法:len(序列)

print(len(numbers)) #8
  1. list — 列表类型转换

    用法:list(序列) ;

    所有的序列都能转化为列表;直接将序列中的元素转换成列表中的元素;

    string = 'asdfghj'
    print(list(string))  #['a', 's', 'd', 'f', 'g', 'h', 'j']
    print(list(range(5))) #[0, 1, 2, 3, 4]
    # 枚举
    print(list(enumerate(numbers))) #[(0, 2), (1, 4), (2, 5), (3, 12), (4, 23), (5, 45), (6, 56), (7, 78)]
    

列表推导式

列表推导式 — 本质就是创建列表的表达式。

结构一

[表达式 for 变量 in 序列]

scores = [71,82,56,60,98,94,53]

list1 = [9 for index in range(3)]
print(list1)  #[9, 9, 9]

list2 = [index for index in range(3)]
print(list2)  #[0, 1, 2]

list3 = [item >= 60 for item in scores]
print(list3)  #[True, True, False, True, True, True, False]
结构二

[表达式 for 变量 in 序列 if 条件语句]

scores = [71,82,56,60,98,94,53]

list4 = [item for item in scores if item >= 60]
print(list4)  #[71, 82, 60, 98, 94]
应用
  • 应用一:

    让序列中所有元素进行统一变换;
    [表达式 for 变量 in 序列]

    # 应用一: 变换输出格式
    scores = [71,82,56,60,98,94,53]
    
    new_scores = [[index,scores[index]] for index in range(len(scores))]
    print(new_scores)  #[[0, 71], [1, 82], [2, 56], [3, 60], [4, 98], [5, 94], [6, 53]]
    
  • 应用二:

    将序列中满足某个条件的元素进行变换(根据某个条件是否满足做两种不同的变换)
    [表达式1 if 条件语句 else 表达式2 for 变量 in 序列]

    # 应用二:  将所有元素中偶数除以2,奇数不变
    scores = [71,82,56,60,98,94,53]
    new_scores1 = [item // 2 if item % 2 == 0 else item for item in scores]
    print(new_scores1)
    

应用二补充说明:三目运算符;

C/Java 三目运算符:条件语句?表达式1:表达式2 — 条件成立,运算结果为表达式1的运算结果,否则为表达式2的结果

Python 三目运算符:表达式1 if 条件语句 else 表达式2 — 如果条件语句成立整个运算结果是表达式1的值,否则为表达式2的值

age = 18
a = '成年' if age >= 18 else '未成年'
print(a)
  • 应用三:
    提取/删除序列中满足条件的元素

    # 应用3: 提取特定(奇数)元素
    scores = [71,82,56,60,98,94,53]
    new_scores2 = [item for item in scores if item % 2]
    print(new_scores2)
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值