好用到起飞的 Python 技巧!

发布时间:2022-02-10 09:47:55 人气:272 作者:多测师

  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)

好用到起飞的 Python 技巧!

  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

  这就是我们在小学学到的代数表达式。同样的语句也可以在 Python 中使用。你应该用过如下的比较方式:

  1<30< and>

  在 Python 中实现上述比较方式的另一种比较方法是:1

  x = 5

  print(1

  输出

  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'))

  以上内容为大家介绍了好用到起飞的 Python 技巧!,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注多测师。https://www.e70w.com/xwzx/

返回列表
在线客服
联系方式

热线电话

17727591462

上班时间

周一到周五

二维码
线