Python 列表 获取幸运数字

上代码,由于鄙人技术十分有限,有些函数(map(),zip(),sorted(),lambda等等)不懂是什么意思,我在最后面的注释的代码 是对 一些函数的简单实例解释。

第一种方法是我自己想的,后面的是看着一个文章抄写的,不过意思写完都看懂了。https://blog.csdn.net/xufive/article/details/105215593

# 寻找幸运数,在列表中,重复的数字且重复的次数与自身数量相等。
print("第一种方式获取")
arr=[1,2,2,3,3,3,5,67,5,5,5,5]
setarr=set(arr)
print(setarr)
for i in setarr:
    # print(i)
    num=0
    for j in arr:
        # print(j)
        if i==j:
            num=num+1
            # print(num)
    if num==i:
        print(f"{num} is 幸运数")
print("第二种方式获取")
arr2=[1,2,2,3,3,3,5,67,5,5,5,5]
setattr2=set(arr2)
for i in setattr2:
    if i==arr2.count(i):
        print(f"{i} 是 幸运数")


print("第三种方式获取")
arr3=[1,2,2,3,3,3,5,67,5,5,5,5]
setattr3=set(arr3)
m=map(arr3.count,setattr3)
z=zip(setattr3,m)
print(f"结果如下:{list(z)}")

print("第四种方式获取")
def func(x):
    if x[0]==x[1]:
        return x
arr4=[1,2,2,3,3,3,5,67,5,5,5,5]
setattr4=set(arr4)
m=map(arr4.count,setattr4)
z=zip(setattr4,m)
f=filter(func,z)
print(f"结果如下:{list(f)}")

print("第五种方式获取")
arr5=[1,2,2,3,3,3,5,67,5,5,5,5]
setattr5=set(arr5)
m=map(arr5.count,setattr5)
z=zip(setattr5,m)
f=filter(lambda x:x[0]==x[1],z)
s=sorted(f,key=lambda x:x[0])
print(f"结果如下:{[item[0] for item in s]}")



print("第六种方式获取")
arr5=[1,2,2,3,3,3,5,67,5,5,5,5]
print(f"结果如下:{[item[0] for item in sorted(filter(lambda x:x[0]==x[1],zip(set(arr5),map(arr5.count,set(arr5)))),key=lambda x:x[0])]}")


#map()函数接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回
# def cf(a):
#     return a*5
# list1=[1,2,3,4,5]
# m=map(cf,list1)
# print(m)
# print(list(m))

#zip()
# a = ['a', 'b', 'c', 'd']
# b = ['1', '2', '3', '4']
# print(f"{a} 和 {b}的zip结果:{list(zip(a, b))}")
# origin = zip(*zip(a, b))#返zip
# print(list(origin))

#Python内建的filter()函数用于过滤序列。 和map()类似,filter()也接收一个函数和一个序列。
#和map()不同的时,filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素。
# def f(x):
#     return x%2==1

# print(f"{list(filter(f,[1, 2, 4, 5, 6, 9, 10, 15]))}")


# lambda
# f=lambda x,y:x*y
# print(f(5,2))
# # print(f"lambda x, y: x*y:{t}")
# g = lambda x: x+1
# print(g(1))

# sort() 从小到达派寻
# s = sorted([1, 3, 2, -1, -2])
# print(s)
# 根据数字的绝对值对数字序列进行排序 abs() 内置函数获取绝对值
# s = sorted((1, 3, 2, -1, -2), key=abs)
# print(s)

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值