📜  Python的惊人技巧

📅  最后修改于: 2020-05-03 12:38:27             🧑  作者: Mango

Python确实是最聪明,最流行的语言之一。 这里有一些很酷的技巧,可以使Python在所有其他语言中脱颖而出。

  1. 列表理解:列表理解是摆脱编写不必要的代码行的最佳而有效的技术。
  2. 打印列表:根据用户要求不打印列表。 它们始终打印在不需要的方括号和单引号中。 但是有一个简单的解决方案,可以使用字符串的join方法有效地打印列表。
    join方法通过将每个项目强制转换为字符串并将它们与join所调用的字符串连接起来,从而将列表转换为字符串 。
    # 声明list mango
      mango = [ '芒果' , 'Programming' , 'Algorithm' , 'Article' ]
     # 直接打印 list
      print ( "简单的list:" , mango)
     # 通过join方法打印列表
      print ( '使用join方法列出: %s' % ', ' 'List by using join method: %s' .join(芒果))
     # 直接使用join方法
      print ( '直接应用联接方法:' ,( ", " .join(芒果)))
    输出:
    简单的list: ['芒果', 'Programming', 'Algorithm', 'Article']
    使用join方法列出:: 芒果, Programming, Algorithm, Article
    直接应用联接方法: 芒果, Programming, Algorithm, Article

 

  1. 将列表分成N组:我们使用iter()作为序列上的迭代器。 
     # 声明list mango
      mango = [ 'Sun' , 'Flowers' , 'Peoples' , 'Animals' , 'Day' , 'Night' ]
     # 在Python 2.7中,只需删除list关键字
      partition = list ( zip ( * [ iter (mango)] * 2 ))
      print (partition)
     输出:
    [('Sun', 'Flowers'), ('Peoples', 'Animals'), ('Day', 'Night')]

    说明 :[iter(芒果)] * 2产生一个包含2个mango []列表的列表,即一个长度为2的列表。* arg将序列解压缩为函数调用的参数。 因此,我们将相同的迭代器两次传递给zip()。

  2. 同时打印多个列表项
      list1 = [ 7 ]
      list2 = [ 8 ]
     # 此处的zip()函数采用两个等长列表,并将它们成对合并
      for zip (list1,list2): a, b (list1,list2):
          print (a, b)
    输出:
     1 2
     3 4
     5 6
     7 8
  3. 将字符串作为输入并将其转换为列表:
     # 在Python 2.7中,将input()替换为raw_input()
     # 从输入中读取一个字符串,并在将其拆分为空白后将大小写形式输入int
      formatted_list = list ( map ( int , input ().split()))
      print (formatted_list)
     输入:
     2 4 5 6
    输出:
    [2,4,5,6]
    
    
  4. 将列表列表转换为单个列表
     # 导入itertools
      import itertools
     # 声明list 芒果
      芒果 = [[ 2 ], [ 3 ], [ 5 ]]
     # chain.from_iterable()函数返回嵌套列表的元素,并从可迭代的第一个列表进行迭代,直到列表的最后一个结束
      lst = list (itertools.chain.from_iterable(芒果))
      print (lst)
     输出:
    [1、2、3、4、5、6]
    
    
  5. 打印重复的字符:任务是打印类似Geeeeekkkkss的图案。 因此我们可以轻松打印此模式而无需使用for循环。
     # +用于字符串连接
     # 要重复字符n次,只需将n与该字符相乘
      print ( "G" + "e" * 5 + "k" * 4 + "s" * 2 )
    输出:
    Geeeeekkkkss