30个Python操作小技巧

前言

1、列表推导

列表的元素可以在一行中进行方便的循环。

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}

2、枚举函数

枚举是一个有用的函数,用于迭代对象,如列表、字典或文件。该函数生成一个元组,其中包括通过对象迭代获得的值以及循环计数器(从0的起始位置)。当您希望根据索引编写代码时,循环计数器很方便。

sentence = 'Just do It'
length = 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!')

3、通过函数返回多个值

在设计函数时,我们经常希望返回多个值。这里我们将介绍两种典型的方法:
方法一
最简单的方式就是返回一个tuple。

get_student 函数,它根据员工的ID号以元组形式返回员工的名字和姓氏。
# returning a tuple.
def get_student(id_num):
    if id_num == 0:
        return 'Taha', 'Nate'
    elif id_num == 1:
        return 'Jakub', 'Abdal'
    else:
        raise Exception('No Student with this id: {}'.format(id_num))
Student = get_student(0)
print('first_name: {}, last_name: {}'.format(Student[0], Student[1]))

方法二、
返回一个字典类型。因为字典是键、值对,我们可以命名返回的值,这比元组更直观。

# returning a dictionary
def get_data(id_num):
    if id_num == 0:
        return {'first_name': 'Muhammad', 'last_name': 'Taha', 'title': 'Data Scientist', 'department': 'A', 'date_joined': '20200807'}
    elif id_num == 1:
        return {'first_name': 'Ryan', 'last_name': 'Gosling', 'title': 'Data Engineer', 'department': 'B', 'date_joined': '20200809'}
    else:
        raise Exception('No employee with this id: {}'.format(id_num))
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']))

4、像数学一样比较多个数字

如果你有一个值,并希望将其与其他两个值进行比较,则可以使用以下基本数学表达式:1<x<30。
你也许经常使用的是这种

1<x and x<30

在python中,你可以这么使用

x = 5
print(1<x<30)

5、将字符串转换为字符串列表:

当你输入 “[[1, 2, 3],[4, 5, 6]]” 时,你想转换为列表,你可以这么做。

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)

6、对于Else方法

Python 中 esle 特殊的用法。

number_List = [1, 3, 8, 9,1]

for number in number_List:
    if number % 2 == 0:
        print(number)
        break
    else:
        print("No even numbers!!")

7、在列表中查找n个最大或n个最小的元素

使用 heapq 模块在列表中查找n个最大或n个最小的元素。

import heapq
numbers = [80, 25, 68, 77, 95, 88, 30, 55, 40, 50]
print(heapq.nlargest(5, numbers))
print(heapq.nsmallest(5, numbers))

8、在不循环的情况下重复整个字符串

value = "Taha"
print(value * 5)  
print("-" * 21)

9、从列表中查找元素的索引

cities= ['Vienna', 'Amsterdam', 'Paris', 'Berlin']
print(cities.index('Berlin'))

10、在同一行中打印多个元素?

print("Analytics", end="")
print("Vidhya")
print("Analytics", end=" ")
print("Vidhya")
print('Data', 'science', 'blogathon', '12', sep=', ')

输出

AnalyticsVidhya
Analytics Vidhya
Data, science, blogathon, 12

11、把大数字分开以便于阅读

有时,当你试图打印一个大数字时,传递整数真的很混乱,而且很难阅读。然后可以使用下划线,使其易于阅读。

print(5_000_000_000_000)

print(7_543_291_635)

输出:

5000000000000
7543291635

12、反转列表的切片

切片列表时,需要传递最小、最大和步长。要以相反的顺序进行切片,只需传递负步长。让我们来看一个例子:

sentence = "Data science blogathon"
print(sentence[21:0:-1])

输出

nohtagolb ecneics ata

13、 “is” 和 “==” 的区别。

如果要检查两个变量是否指向同一个对象,则需要使用“is”
但是,如果要检查两个变量是否相同,则需要使用“==”。

list1 = [7, 9, 4]
list2 = [7, 9, 4]
print(list1 == list2) 
print(list1 is list2)
list3 = list1
print(list3 is list1)

输出

True
False
True

14、在一行代码中合并两个词典。

first_dct = {"London": 1, "Paris": 2}
second_dct = {"Tokyo": 3, "Seol": 4}
merged = {**first_dct, **second_dct}
print(merged)

输出

{‘London’: 1, ‘Paris’: 2, ‘Tokyo’: 3, ‘Seol’: 4}

15、识别字符串是否以特定字母开头

sentence = "Analytics Vidhya"
print(sentence.startswith("b"))
print(sentence.startswith("A"))

16、获得字符的Unicode

print(ord("T"))
print(ord("A")) 
print(ord("h")) 
print(ord("a"))

17、获取字典的键值对

cities = {'London': 1, 'Paris': 2, 'Tokyo': 3, 'Seol': 4}
for key, value in cities.items():
    print(f"Key: {key} and Value: {value}")

18、在列表的特定位置添加值

cities = ["London", "Vienna", "Rome"]
cities.append("Seoul")
print("After append:", cities)
cities.insert(0, "Berlin")
print("After insert:", cities)

输出:

[‘London’, ‘Vienna’, ‘Rome’, ‘Seoul’] After insert: [‘Berlin’, ‘London’, ‘Vienna’, ‘Rome’, ‘Seoul’]

19、Filter() 函数

它通过在其中传递的特定函数过滤特定迭代器,并且返回一个迭代器。

mixed_number = [8, 15, 25, 30,34,67,90,5,12]
filtered_value = filter(lambda x: x > 20, mixed_number)
print(f"Before filter: {mixed_number}") 
print(f"After filter: {list(filtered_value)}")

输出:

Before filter: [8, 15, 25, 30, 34, 67, 90, 5, 12]
After filter: [25, 30, 34, 67, 90]

20、创建一个没有参数个数限制的函数

def multiplication(*arguments):
    mul = 1
    for i in arguments:
        mul = mul * i
    return mul
print(multiplication(3, 4, 5))
print(multiplication(5, 8, 10, 3))
print(multiplication(8, 6, 15, 20, 5))

输出:

60
1200
72000

21、一次迭代两个或多个列表

capital = ['Vienna', 'Paris', 'Seoul',"Rome"]
countries = ['Austria', 'France', 'South Korea',"Italy"]
for cap, country in zip(capital, countries):
    print(f"{cap} is the capital of {country}")

22、检查对象使用的内存大小

import sys
mul = 5*6
print(sys.getsizeof(mul))

23、 Map() 函数

map() 函数用于将特定函数应用于给定迭代器。

values_list = [8, 10, 6, 50]
quotient = map(lambda x: x/2, values_list)
print(f"Before division: {values_list}")
print(f"After division: {list(quotient)}")

24、计算 item 在列表中出现的次数

可以在 list 上调用 count 函数。

cities= ["Amsterdam", "Berlin", "New York", "Seoul", "Tokyo", "Paris", "Paris","Vienna","Paris"]
print("Paris appears", cities.count("Paris"), "times in the list")

25、在元组或列表中查找元素的索引

cities_tuple = ("Berlin", "Paris", 5, "Vienna", 10)
print(cities_tuple.index("Paris")) 
cities_list = ['Vienna', 'Paris', 'Seoul',"Amsterdam"]
print(cities_list.index("Amsterdam"))

26、2个 set 进行 join 操作

set1 = {'Vienna', 'Paris', 'Seoul'}
set2 = {"Tokyo", "Rome",'Amsterdam'}
print(set1.union(set2))

27、根据频率对列表的值进行排序

from collections import Counter
count = Counter([7, 6, 5, 6, 8, 6, 6, 6])
print(count)
print("Sort values according their frequency:", count.most_common())

输出:

Counter({6: 5, 7: 1, 5: 1, 8: 1})
Sort values according their frequency: [(6, 5), (7, 1), (5, 1), (8, 1)]

28、从列表中删除重复值

cities_list = ['Vienna', 'Paris', 'Seoul',"Amsterdam","Paris","Amsterdam","Paris"]
cities_list = set(cities_list)
print("After removing the duplicate values from the list:",list(cities_list))

29、找出两个列表之间的差异

cities_list1 = ['Vienna', 'Paris', 'Seoul',"Amsterdam", "Berlin", "London"]
cities_list2 = ['Vienna', 'Paris', 'Seoul',"Amsterdam"]
cities_set1 = set(cities_list1)
cities_set2 = set(cities_list2)
difference = list(cities_set1.symmetric_difference(cities_set2))
print(difference)

30、将两个不同的列表转换为一个字典

number = [1, 2, 3]
cities = ['Vienna', 'Paris', 'Seoul']
result = dict(zip(number, cities))
print(result)

读者福利:如果你喜欢编程,那这套python学习资料一定对你有用,

对于0基础小白入门:

如果你是零基础小白,想快速入门Python是可以考虑的。

一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以找到适合自己的学习方案

包括:Python安装包+激活码、Python web开发,Python爬虫,Python数据分析,人工智能、机器学习等教程。带你从零基础系统性的学好Python!

零基础Python学习资源介绍

👉Python学习路线汇总👈

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(学习教程文末领取哈)

👉Python必备开发工具👈

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末

👉Python学习视频600合集👈

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

👉实战案例👈

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

👉100道Python练习题👈

检查学习结果。

👉面试刷题👈


在这里插入图片描述

在这里插入图片描述

资料领取

这份完整版的Python全套学习资料已为大家备好,朋友们如果需要可以微信扫描下方二维码添加,输入"领取资料" 可免费领取全套资料有什么需要协作的还可以随时联系我朋友圈也会不定时的更新最前言python知识。↓↓↓
或者

点此链接】领取

好文推荐

了解python的前景: https://blog.csdn.net/weixin_49892805/article/details/127196159

了解python的副业: https://blog.csdn.net/weixin_49892805/article/details/127214402

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是100个Python技巧: 1. 使用for循环可以遍历列表、字符串等可迭代对象。 2. 使用range()函数生成指定范围的数字序列。 3. 使用enumerate()函数可以同时获得元素索引和值。 4. 使用zip()函数可以同时遍历多个可迭代对象。 5. 使用列表推导式可以快速生成列表。 6. 使用集合可以进行高效的集合操作。 7. 使用字典可以进行键值对的映射。 8. 使用切片可以快速获取列表、字符串的子序列。 9. 使用函数可以封装可复用的代码块。 10. 使用类可以实现面向对象的编程。 11. 使用模块可以组织和管理代码。 12. 使用异常处理可以捕获和处理程序的错误。 13. 使用with语句可以自动管理资源的释放。 14. 使用装饰器可以增强函数的功能。 15. 使用生成器可以按需计算大量数据。 16. 使用协程可以实现异步编程。 17. 使用多线程可以并发执行任务。 18. 使用多进程可以充分利用多核处理器。 19. 使用文件操作可以读写文件。 20. 使用正则表达式可以进行复杂的文本匹配。 21. 使用time模块可以获取当前时间和进行时间操作。 22. 使用random模块可以生成随机数。 23. 使用math模块可以进行数学运算。 24. 使用json模块可以进行JSON数据的处理。 25. 使用pickle模块可以进行对象的序列化和反序列化。 26. 使用os模块可以进行文件和目录的操作。 27. 使用sys模块可以获取和修改Python解释器的运行时环境。 28. 使用re模块可以进行正则表达式匹配。 29. 使用argparse模块可以解析命令行参数。 30. 使用logging模块可以进行日志记录。 31. 使用unittest模块可以编写和执行单元测试。 32. 使用requests库可以发送HTTP请求。 33. 使用BeautifulSoup库可以解析HTML文档。 34. 使用numpy库可以进行数组和矩阵计算。 35. 使用pandas库可以进行数据处理和分析。 36. 使用matplotlib库可以进行数据可视化。 37. 使用scikit-learn库可以进行机器学习。 38. 使用tensorflow库可以进行深度学习。 39. 使用flask库可以构建Web应用。 40. 使用Django库可以构建全功能的Web应用。 41. 使用SQLite数据库可以进行轻量级的数据存储。 42. 使用MySQL数据库可以进行关系型数据存储。 43. 使用MongoDB数据库可以进行文档型数据存储。 44. 使用Redis数据库可以进行缓存和键值存储。 45. 使用Elasticsearch可以进行搜索和分析。 46. 使用OpenCV库可以进行图像处理和计算机视觉。 47. 使用pygame库可以进行游戏开发。 48. 使用tkinter库可以进行桌面应用程序开发。 49. 使用wxPython库可以进行跨平台的GUI开发。 50. 使用Flask-RESTful可以构建RESTful API。 51. 使用Celery可以进行异步任务的调度和执行。 52. 使用pytest可以进行更简洁和灵活的单元测试。 53. 使用Selenium可以进行Web自动化测试。 54. 使用Faker可以生成随机的测试数据。 55. 使用IPython可以进行交互式的开发和调试。 56. 使用Jupyter Notebook可以进行数据分析和可视化。 57. 使用Spyder可以进行科学计算和Python开发。 58. 使用cookiecutter可以快速构建项目模板。 59. 使用virtualenv可以创建和管理Python虚拟环境。 60. 使用pip可以安装和管理Python包。 61. 使用pyenv可以管理多个Python版本。 62. 使用conda可以创建和管理Python环境。 63. 使用autopep8可以自动格式化Python代码。 64. 使用black可以自动格式化Python代码。 65. 使用flake8可以检查Python代码是否符合PEP8规范。 66. 使用bandit可以检查Python代码中的安全漏洞。 67. 使用isort可以自动排序Python导入语句。 68. 使用mypy可以进行静态类型检查。 69. 使用pylint可以进行代码质量检查。 70. 使用pyinstaller可以将Python程序打包成可执行文件。 71. 使用cx_Freeze可以将Python程序打包成可执行文件。 72. 使用py2exe可以将Python程序打包成可执行文件。 73. 使用pyodbc可以连接和操作数据库。 74. 使用paramiko可以进行SSH远程操作。 75. 使用fabric可以进行任务的自动化部署。 76. 使用pytest-django可以简化Django的单元测试。 77. 使用django-rest-framework可以快速构建RESTful API。 78. 使用scrapy可以进行Web爬虫。 79. 使用sqlalchemy可以进行高级数据库操作。 80. 使用pymongo可以连接和操作MongoDB数据库。 81. 使用tqdm可以在循环中显示进度条。 82. 使用click可以构建命令行接口。 83. 使用cProfile可以进行性能分析。 84. 使用line_profiler可以逐行分析代码性能。 85. 使用memory_profiler可以分析内存使用情况。 86. 使用profilehooks可以进行分析函数调用性能。 87. 使用PyInstaller可以将Python程序打包成可执行文件。 88. 使用Openpyxl可以读写Excel文件。 89. 使用Pillow可以进行图像处理。 90. 使用pyautogui可以进行图像识别和自动化操作。 91. 使用pytesseract可以进行文字识别。 92. 使用pywin32可以操作Windows系统API。 93. 使用pyserial可以进行串口通信。 94. 使用opencv-python可以进行图像处理。 95. 使用catboost可以进行梯度提升决策树算法。 96. 使用fasttext可以进行文本分类和词向量训练。 97. 使用gensim可以进行文本相似度计算。 98. 使用jieba可以进行中文分词。 99. 使用lightgbm可以进行梯度提升算法。 100. 使用xgboost可以进行梯度提升算法。 这些小技巧涵盖了Python的各个方面,包括语法、标准库、第三方库和常见开发任务。通过学习和应用这些技巧,可以提高Python编程的效率和质量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值