day 7

本文详细介绍了Python中列表的数学运算、比较运算、相关函数和方法,如列表的拼接、重复、排序、查找、计数等。同时,讲解了列表推导式的使用,以及如何通过三目运算符进行条件判断。此外,还涉及到了元组的基础概念。
摘要由CSDN通过智能技术生成

day 7

列表相关的运算符

1.数学运算符: + 、 *
  • 列表1 + 列表2 – 将两个列表中的元素合并产生一个新的列表

    list1 = [100, 200, 300]
    list2 = [10, 20, 30]
    print(list1 + list2)
    
  • 列表*N / N * 列表 – 列表中的元素重复N次产生一个新的列表

    print(list2*3)
    print(list2*1) # --产生一个和原来一样的新的列表
    
2.比较运算符 > < >= <= == !=
  • 补充:不同的类型可以使用==和!= 来比较是否相等,但是不能使用> < >= <= 来比较大小
1)== !=
print([10, 20, 30]==[10, 20, 30])  # True
print([10, 20, 30]==[10, 30, 20])  # Flase
print({10, 20, 30}=={10, 30, 20})   # 集合无序
2)> < >= <=
  • 两个列表比较大小,比较的是第一对不相等的元素的大小

    print([10,100,200,300]>[20,1])  # Flase  比较元素(从第一个位置开始依次比较
    print([10,20,30]>[10,20])
    

列表相关函数

1. max min
  • max(序列) – 获取序列中最大的元素

  • min(序列) – 获取序列中最小的元素

    nums=[10,20,30,23,32,50,40]
    print(max(nums))
    print(min(nums))
    num = [10,20,'abc',30,40]  --不能
    print(max(num))  --报错
    
2.sum
  • sum(数字序列) – 求序列中所有元素的和

    nums=[10,20,30,23,32,50,40]
    print(sum(nums))
    print(sum(range(101)))
    
3.sorted
  • sorted(序列) – 将序列中的元素从小到大排序,产生一个新的列表

  • sorted(序列,reverse=True) – 从大到小排序

    nums=[100,20,305,23,72,50,40]
    new_nums=sorted(nums)
    print(new_nums)
    
    nums=[100,20,305,23,72,50,40]
    new_nums=sorted(nums,reverse=True)
    print(new_nums)
    
4.len
  • len(序列) – 获取序列中元素的个数

    print(len([10,20,30,40,50]))
    print(len(['abjidfs1234']))
    print(len(range(5,100)))
    
5.list
  • list(数据) – 所有的序列都可以转换成列表(将序列的元素作为列表的元素创建一个新的列表)

    print(list('abcdefg'))
    print(list(range(10)))
    print(list('你好!世界'))
    

列表的相关方法

  • 列表.append(元素)
  • 列表.insert(下标,元素)
  • 列表.remove(元素)
  • 列表.pop()
1.列表.clear() --清空列表
nums = [10, 20, 30, 40, 50]
nums.clear()
print(nums)
2.列表.copy() – 赋值原来列表,产生一个一样的新的列表
  • 列表.copy() --浅拷贝

  • 列表[:] 列表*1 列表+[] 都是浅拷贝

    nums = [10, 20, 30, 40, 50]
    new_nums = nums.copy()
    print(new_nums)
    
    注意:变量在保存数据的时候保存的其实是数据在内存中的地址(Python中的变量全是指针变量)。一个变量直接给另外一个变量赋值,赋的是地址
    num = nums
    num2 = nums[:]
    num3 = nums * 1
    print('num的id:', num, id(num))
    print('nums的id:', nums, id(nums))
    print('new_nums的id:', new_nums, id(new_nums))
    
3.列表.count(元素) – 统计列表中指定元素的个数
nums = [10, 20, 30, 40, 50, 10, 10, 80, 45]
a = nums.count(10)
print(a)
print(nums.count(30))
4.列表.extend(序列) – 将序列中的元素全部添加到列表中
append是把[10,20]作为一个元素添加进列表:
nums = [100, 200]
nums.append([10, 20])
print(nums)

extend是把[10,20]里面的元素添加进列表:
nums.extend([10, 20])
print(nums)

nums.extend('abcd')
print(nums)
5.列表.index(元素) --获取元素在列表中的下标值(0开始的下标值)
nums = [10, 20, 30, 40, 50, 10, 10, 80, 45]
result = nums.index(20)
print(result)
有多个相同的,返回第一次出现的下标:
result = num.index(10)
print(result)

列表中没有所查的元素:报错
result=nums.index(100)
print(result)
6.列表.reverse() --列表逆序
num5 = [10, 20, 30, 40, 50]
num5.reverse()
print(num5)
7.排序
  • 列表.sort()

  • 列表.sort(reverse= True)

  • sorted(列表)

  • sorted(列表,reverse=True)

    
    num5 = [10, 20, 30, 40, 50]
    result = sorted(num5)
    print(num5)
    print(result)
    
    num5 = [10, 20, 30, 40, 50]
    result = num5.sort()
    print(num5)
    print(result)
    
    
    

列表推导式

列表推导式 - 快速创建列表的表达式
1.推导式结构1

[表达式 for 变量 in 序列]
– 让变量去序列中取值,一个一个取,
取完为止,每取一个值就将表达式的值作为列表的一个元素

list1 = [10 for x in 'abc']
print(list1)

list2 = [x * 2 for x in range(5, 11)]
print(list2)

练习:使用列表推导式获取nums中所有元素的的个位数

nums = [23, 89, 90, 56, 41, 802]
a = [i % 10 for i in nums]
print(a)

练习2:是用列表推导式将nums中所有的元素乘以10

[230, 890, 900, 560, 410, 8020]

nums = [23, 89, 90, 56, 41, 802]
b = [i * 10 for i in nums]
print(b)

练习3:已知分数列表,将列表中的元素全部换成’及格’ - True 或者’不及格’-False
[‘及格’, ‘及格’, ‘不及格’, ‘及格’, ‘不及格’, ‘及格’]
[True, True, False, True, False, True]

scores = [90, 78, 45, 67, 39, 89]
c = [i > 60 for i in scores]
print(c)

result = ['及格' if i >= 60 else '不及格' for i in scores]
print(result)

练习4:已知一个数字列表,将列表中所有的偶数除以2,所有的奇数乘以2

nums = [23, 89, 90, 56, 41, 802]
[46, 178, 45, 28, 82, 401]
result = [i // 2 if i % 2 == 0 else i * 2 for i in nums]
print(result)
2.推导式结构2

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

创建一个列表,变量去序列中取值,一个一个取,取完为止;
每取一个值就判断条件是否为True,如果为True就计算表达式结果为
列表的元素

result = [x for x in range(10, 21) if x % 2]
print(result)

练习1:使用列表推导式提取nums中所有的奇数

[23, 89, 41]
nums = [23, 89, 90, 56, 41, 802]
result = [x for x in nums if x % 2]
print(result)

练习2:已知一个列表,提取列表中所有的字符串

list1 = [10, 23.9, 'hello', True, '12', 0]
result = [i for i in list1 if type(i) == str]
print(result)

练习3:已知一个列表,提取列表中所有的整数,并且将整数加3
[13, 3]

list1 = [10, 23.9, 'hello', True, '12', 0]
result = [i + 3 for i in list1 if type(i) == int]
print(result)

三目运算符

  • c 和java

表达式?值1:值2 -如果表达式的值为真结果就是值1,否则就是值2

  • python

值1 if 表达式 else 值2 - 如果表达式的值为True结果就是值1,否则就是值2

age = 28
result='成年' if age >= 18 else '未成年'
print(result)

元组

元组就是不可变的列表
查、in和not in、数学运算、比较运算、相关函数 – 元组都支持

1.什么是元组(tuple0)

(元素1,元素2,元素3,…)
不可变的;有序的

空元组
t1=()
print(t1,type (t1))

有一个元素的元组
t2=(10,)
print(t2,type(t2))


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值