day7列表函数和推导式

列表相关运算符

# 列表相关运算符
# 1.数学运算符:+、*
# 列表1+列表2  -  将两个列表中的元素合并产生一个新的列表
list1=[100,200,300]
list2=[10,20]
print(list1+list2)
#列表*N或者N*列表
print(list2*3)
print(list2*1)
# 2.比较运算符:>、<、<=、>=、==、!=
# 补充:不同的类型可以用==和!=来比较是否相等,但是不能使用>、<、>=、<=来比较大小
# 1)==、!=
print([10,20,30]==[10,20,30])
print([10,20,30]==[10,30,20])
print([10,20,30]==[30,20,10])
# 2)>、<、>=、<=
# 两个列表比较大小,比较的是第一个对儿不相等的大小
print([10,100,200,300]>[20,1])
print([10,100,200,300]>[10,20,30000])
# 列表函数
# max(序列)  -  获取序列中最大的元素
# min(序列)  -  获取序列中最小的元素
nums=[32,34,43,23,67,79]
print(max(nums),min(nums))
# 2.sum
# sum(数字序列) - 求序列中所有元素的和
nums=[10,32,34,44,34,89,78]
print(sum(nums))
print(sum(range(101)))
# 3.sorted
# sorted(序列)  -  将序列中的元素从小到大排序,产生一个新列表
# sorted(序列,reverse=True) - 将序列中的元素从大到小排序,产生一个新的列表
nums=[34,54,12,34,56,89,32,25]
new_nums=sorted(nums)
print(new_nums)

nums=[34,67,32,78,56,90,16]
new_nums=sorted(nums,reverse=True)
print(new_nums)
# 4.len
# len(序列)  -  获取序列中元素的个数z
print(len([10,30,23]))
print(len('abc23'))
print(len(range(5,100)))
# 5.list
# list(序列) - 将序列的元素作为列表的元素创建一个新的列表
print(list('abc'))
print(list(range(3)))
# 列表.append(元素)
# 列表.insert(下标,元素)
# 列表.remove(元素)
# 列表.pop()
# 1.列表.clear()   -  清空列表
nums=[34,34,45,65,76,87]
nums.clear()
print(nums)
# 2.列表.copy(0)  -  复制列表产生一个一模一样的新列表
# 列表.copy()  -  浅拷贝
# 列表[:]、列表*1、列表+[]  都是浅拷贝
#变量在保存数据的时候保存的其实是数据在内存中的地址(python中的变量全是指针变量)。一个变量直接给
# 另外一个变量赋值,赋的是地址
nums=[23,21,4,3]
nums.append(100)
nums1=nums.copy()###原来的元素改变的数据不影响
print(nums1)
nums1=nums###原来的元素改变的数据会影响
print(nums1)
# 3.列表.count(元素)    -  统计列表中执行元素的个数
nums=[32,45,67,78,9,44,33,33,33,45,65,33]
print(nums.count(33))
c1=nums.count(33)
print(c1)
#4.列表.extend(序列)  -  将序列中的元素全部添加到列表中
nums=[100,200]
nums.append([10,20])
print(nums)
nums=[100,200]
# nums.extend([10,20]) 字符串也行('abc')
nums.extend([10,20])
print(nums)

# 5.列表.index(元素)  -  获取元素在列表中的下标值(0开始的下标)
# 如果元素有多个返回第一个下标;如果元素不存在就报错
nums=[43,23,54,56,67,87,32,10,10,10]
c=nums.index(56)
print(c)

# c1=nums.index(10)
# print(c1)

# c2=nums.index(100)#报错
# print(c2)
#6.列表.reverse()  -  列表逆序
nums.reverse()
print(nums)

c=nums[::-1]
print(c)

#7.列表.sort()
# 列表.sort() - 列表.sort(reverse=True)  直接排序
# sorted(列表)  -  sorted(列表,reverse=True)  保留原来的数据排序
nums=[10,23,45,56,76,32,34]
c=sorted(nums)
print(nums)
print(c)
nums=[10,23,45,56,76,32,34]
c=nums.sort()
print(nums)
print(c)
# 列表推导式  -  快速创建列表的表达式
# 1.推导式结构1
# [表达式 for 变量 in 序列] - 让变量去序列中取值,一个一个的取,取完为止,
# 每取一个值就将表达式作为列表的一个元素
list1=[10 for x in 'abx']
print(list1)

list2=[x * 2 for x in range(5,11)]
print(list2)
#获取nums中所有元素的个位数
nums=[23,89,90,56,41,802]
c=[x%10 for x in nums]
print(c)
# 所有数乘10
nums=[23,89,90,56,41,802]
c=[x*10 for x in nums]
print(c)

# 练习,已知分数列表,将列表中的元素全部换成'及格'或者'不及格
scores=[90,78,45,67,39,89]
c=[x>=60 for x in scores]
print(c)

c=['及格' if x>=60 else '不及格' for x in scores]
print(c)
# 1.补充三目运算符
# c和java
# 表达式?值1:值2  -  如果表达式的值为真结果就是值1,否则结果是值2
# python
# 值1 if 表达式 else 值2 - 如果表达式的值为True结果就是值1,否则结果是值2
age=8
c='成年' if age>= 18 else '未成年'
print(c)

a=1
b=2
c=b*2 if a>0 else b / 2
print(c)

# 练习:已知一个数字列表,将列表中所有的偶数乘以2,所有的奇数乘以2
nums=[23,89,90,56,41,802]
c=[x//2 if x%2==0 else x*2 for x in nums]
print(c)
# 2.推导式结构2
# [表达式 for 变量 in 序列 if 条件语句]
# 创建一个列表,变量去序列中取值,一个一个的取,取完为止,
# 每取一个值就判断一次,如果为True就计算表达式的结果为列表的元素
c=[x for x in range(10,21) if x % 2]
print(c)
# 练习:使用列表推导式提取nums中所有的奇数
nums=[23,89,90,56,41,802]
c=[x for x in nums if x%2==1]
print(c)
# 练习2:已知一个列表,提取列表中所有的字符串
list1=[10,23.9,'hell0',True,'12',0]
c=[x for x in list1 if type(x)==str]
print(c)
# 练习3:已知一个列表,提取列表中所有的整数,并且将整数加3
list1=[10,23.9,'hell0',True,'12',0]
c=[x+3 for x in list1 if type(x)==int]
print(c)
元祖就是不可变的列表
查、intnot in、数学运算、比较运算、相关函数 - 元组都支持
1.什么是元组(tuple)
# (元素1,元素2,元素3,....)
# 不可变的;有序
# 空元组
t1=()
print(t1,type(t1))
# 有一个元素的元组
t2=(10,)
print(t2,type(t2))

t3=(10,23,54,56,67,87)
print(t3[1])
print(t3[-1])
print(t3[-3:])
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值