整理了四十个好用到起飞的 Python 技巧!(1)

上一篇 / 下一篇  2022-01-13 16:04:45

  写在前面
  Python简单易学,现今非常流行。Python被用于各种场景,如数据科学、机器学习、web开发、脚本编制、自动化等等。
  Python的简单易学性在数据科学非常重要。尽管一些数据科学家有计算机科学背景或了解其他编程语言,但仍有许多数据科学家来自各类专业,如统计学、数学或其他技术学科,当他们刚进入这个行业时,可能并没有那么多编程知识。Python语法易于理解和编写的优势,使它成为一种流行于快速且易于学习的编程语言。
  在本文中,云朵君将和大家一起学习 40 个可以帮助你加快数据处理效率的的方法和技巧,希望对你有所帮助。
  01 列表推导式
  列表的元素可以在一行中循环遍历。
  numbers = [1, 2, 3, 4, 5, 6, 7, 8]  
  even_numbers = [number for number in numbers if number % 2 == 0]  
  print(even_numbers)  
  输出
  [1,3,5,7]
  同样可以使用字典、集合和生成器来完成推导式。
  dictionary = {'first_num': 1, 'second_num': 2,  
                'third_num': 3, 'fourth_num': 4}  
  oddvalues = {key: value for (key, value) in dictionary.items() if value % 2 != 0}  
  print(oddvalues)Output: {'first_num': 1,   
                           'third_num': 3} 
  02 枚举函数
  Enumerate (枚举) 是一个很有用的函数,用于迭代对象,如列表、字典或文件。该函数生成一个元组,其中包括通过对象迭代获得的值以及循环计数器(从 0 的起始位置)。当希望根据索引编写代码时,循环计数器就派上用场了。
  来看一个示例,其中第一个和最后一个元素会被区别对待。
  sentence = 'Just do It'  
  lenlength = len(sentence)  
  for index, element in enumerate(sentence):  
      print('{}: {}'.format(index, element))  
      if index == 0:  
          print('The first element!')  
      elif index == length - 1:  
          print('The last element!') 
  输出
  0: J
  The first element!
  1: u
  2: s
  3: t
  4:
  5: d
  6: o
  7:
  8: I
  9: t
  The last element!
  也可以使用 enumerate 函数枚举文件。在下面的示例中,在跳出循环之前打印 CSV 文件的前 10 行。并且可以在任何文件上使用该函数。
  with open('heart.csv') as f:  
      for i, line in enumerate(f):  
          if i == 10:  
              break  
          print(line) 
  03 通过函数返回多个值
  在设计函数时,我们经常希望返回多个值。在这里介绍两种典型的方法。
  方法一
  最简单的是返回一个元组。这种方法通常只在有两个或三个值要返回时使用。但当元组中有更多值时,很容易忘记项目的顺序。
  下面的代码部分是一个示例函数,它根据学生的 ID 号将学生的名字和姓氏作为元组返回。
  # 返回元组  
  def get_student(id_num):  
      if id_num == 0:  
          return '君', '云朵'  
      elif id_num == 1:  
          return '猴子', '小'  
      else:  
          raise Exception('没有学生的id是: {}'.format(id_num)) 
  当我们使用数字 0 调用函数时,我们注意到它返回一个具有两个值的元组:'Taha' 和 'Nate' 。
  Student = get_student(0)  
  print('名字: {}, 姓氏: {}'.format(Student[0],   
         Student[1])) 
  输出
  名字:君,姓氏:云朵
  方法二
  第二个选择是返回字典。因为字典是键值对,我们可以对返回的值进行命名,这比元组更直观。
  方法二的实现方式和方法一一样,只是返回一个字典。
  # 返回字典  
  def get_data(id_num):  
      if id_num == 0:  
          return {'first_name': '君',  
                  'last_name': '云朵',   
                  'title': '数据STUDIO', 
                  'department': 'A',   
                  'date_joined': '20201001'}  
      elif id_num == 1:  
          return {'first_name': '猴子',   
                  'last_name': '小',   
                  'title': '机器学习研习院',  
                  'department': 'B',   
                  'date_joined': '20201019'}  
      else:  
          raise Exception('没有员工的id是: {}'.format(id_num)) 
  当结果是字典时,通过键引用特定值会更容易。我们正在调用 id_num = 0 的函数。
  employee = get_data(0)  
  print('first_name: {}, nlast_name: {}, ntitle: {}, ndepartment: {}, ndate_joined: {}'.format(  
        employee['first_name'], employee['last_name'],   
      employee['title'], employee['department'],   
      employee['date_joined'])) 
  输出
  first_name: 君,    
  last_name: 云朵,    
  title: 数据STUDIO,    
  department: A,    
  date_joined: 20201001 
  04 像在数学中一样比较多个数字
  如果有一个值并希望将其与其他两个值进行比较,可以使用以下基本数学表达式: 1<x<30
  这就是我们在小学学到的代数表达式。同样的语句也可以在 Python 中使用。你应该用过如下的比较方式:
  1<x and x<30
  在 Python 中实现上述比较方式的另一种比较方法是:1<x<30
  x = 5  
  print(1<x<30)  
  输出
  True
  05 将字符串转换为字符串列表
  假设将函数的输入作为字符串,但它应该是这样的列表:
  输入 = [[1, 2, 3], [4, 5, 6]] 
  其实无需处理复杂的正则表达式,只需导入模块'ast'并调用其函数literal_eval:
  import ast  
  def string_to_list(string):  
      return ast.literal_eval(string)  
  string = "[[1, 2, 3],[4, 5, 6]]"  
  my_list = string_to_list(string)  
  print(my_list) 
  输出
  [[1, 2, 3], [4, 5, 6]]
  06 For-Else 方法
  此方法用于在列表上应用循环。通常,当你想遍历你应用的列表时,可以使用 for 循环。但是在这种方法中,你可以在循环中传递一个 else 条件,这种情况极为罕见。其他编程语言不支持这种方法。
  看看它在一般情况下是如何工作的:如果要检查列表中是否有偶数。
  number_List = [1, 3, 7, 9,8]  
  for number in number_List:  
      if number % 2 == 0:  
          print(number)  
          break  
      else:  
      print("No even numbers!!") 
  输出
  8
  如果找到偶数,则将打印该数字,并且 else 部分将不会执行,因为我们传递了一个 break 语句。如果 break 语句从不执行,则 else 块将执行。
  07 从列表中找到N个最大/小的元素
  通过使用'heapq'模块,你可以从列表中找到 n-largest 或 n-smallest 元素。
  import heapq  
  numbers = [80, 25, 68, 77, 95, 88, 30, 55, 40, 50]  
  print(heapq.nlargest(5, numbers))  
  print(heapq.nsmallest(5, numbers)) 
  输出
  [95, 88, 80, 77, 68] [25, 30, 40, 50, 55]
  08 函数参数以列表值传递
  可以使用'*'访问列表的所有元素。
  def Summation(*arg):  
      sum = 0  
      for i in arg:  
          sum += i  
      return sum  
  result = Summation(*[8,5,10,7])  
  print(result) 
  输出
  30
  09 重复整个字符串
  只需将字符串乘以一个数字,即希望字符串重复的次数。
  value = "数据STUDIO"  
  print(value * 3)   
  print("-" *31) 
  输出
  数据STUDIO数据STUDIO数据STUDIO 
  ----------------------------
  10 从列表中找到元素的索引
  使用".index"从列表中查找元素的索引。
  cities= ['Vienna', 'Amsterdam', 'Paris', 'Berlin']  
  print(cities.index('Berlin'))  
  输出
  3

51Testing来给你送70G的测试资料了,无论你暂时基础薄弱还是想要进阶突破自我,这套资料都能够帮助你。而且还额外加赠一套自动化测试课程。点击链接,填写调查问卷领取吧~
链接:http://vote.51testing.com/

TAG: 软件开发 Python

 

评分:0

我来说两句

日历

« 2022-05-13  
1234567
891011121314
15161718192021
22232425262728
293031    

数据统计

  • 访问量: 48006
  • 日志数: 330
  • 建立时间: 2020-08-11
  • 更新时间: 2022-05-12

RSS订阅

Open Toolbar