Discuss / Python / 分享个书上看到的知识,欢迎加好友,一起学习,找志同道合的伙伴

分享个书上看到的知识,欢迎加好友,一起学习,找志同道合的伙伴

Topic source

from itertools import groupby as love #导入函数groupby 指定别名 love

def add(x): #定义一个函数

    if x > 180:

        return '高'

    elif x < 160:

        return '矮'

    else:

        return '中等'

a=[191,158,159,165,170,177,181,182,190] #创建一个列表

a=sorted(a,key=add) #排序列表

c=love(a,key=add) #创建迭代器

for x,y in c:

    print(x)

    print(list(y))

输出结果

中等

[165, 170, 177]

[158, 159]

[191, 181, 182, 190]

本人微信 13909867368 小白一枚 欢迎添加好友

同求小伙伴,18088012794

a=sorted(a,key=add) #排序列表

改成

a = sorted(a)

会有意想不到的结果。

Heymrpo

#5 Created at ... [Delete] [Delete and Lock User]

同求小伙伴。本人学生一个,新手上路,共同进步 VX: x1751509995

求小伙伴 共同进步 vx:13904219242

打错了 。。。。 13804219242

能解释下

a=sorted(a,key=add)

c=love(a,key=add)

这两句怎么执行的嘛?谢谢

卟帥卟帥

#9 Created at ... [Delete] [Delete and Lock User]

自己把a、c打印出来看一下就知道了

a=sorted(a,key=add)   #这是把a这个list里面的元素按照add这个方法(上面定义的)进行归类后排序,输出结果是[165, 170, 177, 158, 159, 191, 181, 182, 190],其中165, 170, 177是中等,158, 159是矮,191, 181, 182, 190是高

c=love(a,key=add)  #同理,这是把a这个list里面的元素按照add这个方法进行分组

能解释下
a=sorted(a,key=add)
c=love(a,key=add)
这两句怎么执行的嘛?谢谢

这行代码为什么是迭代器不是很明白,个人认为迭代器的定义理解清楚了,主要函数groupby,与kye = add这里不懂 怎么变成迭代器的

c=love(a,key=add)

  • 1
  • 2

Reply