最赞回答 / 慕先生5781448
嗯,我也犯这个错误了。我理解下来差不多是这样,map遍历列表里的每一个元素,map所接收的两个参数,第一个参数是函数,第二个参数是列表。那第一个函数参数:所接收的参数是列表的每一个元素而不是整个列表。所以这里的s是列表里的第一个字符串,s[0]是第一个字符串的第一个字符。<...图片...>
2018-11-14
已采纳回答 / 慕姐7185533
python中字符串是以Unicode编码的,每个字符有对应不同的编码。大小写字母的编码不相同,例如'A'的编码为65,'Z'的编码为90,'a'的编码则为97,大写字母永远会排在小写字母之前。如果区分大小写,排序则变成['Credit','Zoo','about','bob']
2018-11-14
最新回答 / 被翻身的咸鱼
class Person(object): passp1 = Person()p1.name = 'Bart'p2 = Person()p2.name = 'Adam'p3 = Person()p3.name = 'Lisa'L1 = [p1, p2, p3]L2 = sorted([p1, p2, p3], lambda p1, p2: cmp(p1.name.lower(),p2.name.lower()))print L2[0].nameprint L2[1].nameprint L2[2]....
2018-11-13
最新回答 / 哥雅的玛雅肖像
class Person(object): def __init__(self, name, gender, **kw): for eachKw in kw: setattr(self,eachKw,kw[eachKw]) p = Person('Bob', 'Male', age=18, course='Python')print p.ageprint p.course
2018-11-13
最新回答 / LotQin
上面是类的定义,写object代表着继承自object类。下面是对类进行实例化也就是创建类的对象,创建时调用的是__init__()方法,这个方法里面需要什么参数就在Person()里填入对应的参数。
2018-11-12
已采纳回答 / LotQin
这里用到的cmp(x, y)是Python2的一个内置函数,功能是如果x>y返回1,x<y返回-1,x==y返回0。你贴出的代码中是在分数相等的情况下,比较当前对象的name和s对象的name。(比较首字母的Ascii码大小)否则就是比较两个对象的分数,加个负号作用就是从大到小排序。
2018-11-12
已采纳回答 / LotQin
格式化输出的占位符,%s代表用字符串填充。给你找了篇博文,学习一下。https://www.cnblogs.com/fat39/p/7159881.html
2018-11-12
最赞回答 / Awful_Leo
按照a, b = b, a+b的写法,一开始a = 0, b = 1,则等号右边为1, 1则a, b = 1, 1如果按照a = b, b = a+b的写法,一开始对于 a = b这个式子来说b = 1,将此值赋给a,此时有 a = 1, b = 1然后对于b = a+b这个式子来说a + b = 2,将此值赋给b,此时有 a = 1, b = 2两个结果是不一样的,原因在于,按照第二个写法,a的值在第二个式子中使用之前已经重新赋过值;而在第一个写法中,等号右边的a和b先取初始值,然后再赋给左边。
2018-11-10