zoukankan      html  css  js  c++  java
  • 一道题的分析

      经过长期的加班。忽然感觉好久没学习了,来一波!!

    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 b
    5 
    6 # 输出:
    7 # (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
    8 # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

       知识点三:用来拼接字符串的函数:join()函数

                        这个比较基础,例子太多,就不举例说明了

      一道题覆盖的知识,有些都得翻书看,学无止境,学无止境。

                                                              上班去

                                                             --首席小学生

  • 相关阅读:
    Java--8--新特性--Lambda
    java--Annotation实现
    原生Ajax代码实现
    java--动态代理设计模式,CGLIB实现的动态代理设计模式
    java--分析简单java类与反射的联系
    java--反射的基本概念
    Oracle-4
    初始化springbean
    spring初始化bean对象的三种方式:init-method,afterPropertiesSet和BeanPostProcessor
    在注释中查看其它的类的方式
  • 原文地址:https://www.cnblogs.com/hainan-zhang/p/5888820.html
Copyright © 2011-2022 走看看