经过长期的加班。忽然感觉好久没学习了,来一波!!
1.题目:"".join([c for c in reversed("123")])的输出
该题考了三个知识点,虽然都是简单知识,但是得赞一下这个出题人。
知识点一:reversed(),这个函数还有一个兄弟函数reverse(),它俩都能得到list对象的逆序结果,而且只是list下标逆序,而list的元素不进行排序。
reversed()的用法如下:
1 l = [12, 11, 22, 33, 44] 2 a = reversed(l) 3 print list(a) 4 print list(a) 5 6 # 输出是: 7 # [44, 33, 22, 11, 12] 8 # [] 9 # reversed方法得到的是一个暂时的值,而且只能在第一次遍历的时候拿到值,10 # 之后就拿不到了 11 # 而且拿到的是下标逆序,11和12并没有进行排
然而reverse()的用法就不是如此,而且效果不一致:
1 l = [12, 11, 22, 33, 44] 2 l.reverse() 3 print (l) 4 print (l) 5 6 # 输出是: 7 # [44, 33, 22, 11, 12] 8 # [44, 33, 22, 11, 12] 9 # 由此可见reverse方法的用法10 # 而且该方法会对使用方法的list对象进行永久的下标逆序11 # 和它兄弟一样,也只是下标逆序
通过这俩兄弟,使我想到了另外俩兄弟: sort()和sorted(),他俩也一样,找到一篇文章,感觉对这些兄弟的描述很靠谱:
sorted()是python的内置函数,并不是可变对象(列表、字典)的特有方法,sorted()函数需要一个参数(参数可以是列表、字典、元组、字符串),无论传递什么参数, 都将返回一个以列表为容器的返回值,如果是字典将返回键的列表 sort()是可变对象(字典、列表)的方法,无参数,无返回值,sort()会改变可变对象,因此无需返回值。sort()方法是可变对象独有的方法或者属性, 而作为不可变对象如元组、字符串是不具有这些方法的,如果调用将会返回一个异常。
知识点二:使用for循环生成列表(元组)
1 a = (c for c in range(0, 10))2 print tuple(a)3 b = [d for d in range(0, 10)]4 print b5 6 # 输出:7 # (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)8 # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
知识点三:用来拼接字符串的函数:join()函数
这个比较基础,例子太多,就不举例说明了
一道题覆盖的知识,有些都得翻书看,学无止境,学无止境。
上班去
--首席小学生