📜  解决日常编程问题的 10 个Python代码片段

📅  最后修改于: 2022-05-13 01:54:39.725000             🧑  作者: Mango

解决日常编程问题的 10 个Python代码片段

近年来, Python编程语言拥有庞大的用户群。原因之一可能是与其他面向对象的编程语言(如Java、C++、C#、JavaScript)相比,它更容易学习,因此越来越多的进入计算机科学领域的初学者选择Python。 Python受欢迎的另一个原因是它几乎被用于 IT 行业的所有领域,无论是数据科学、机器学习、自动化、网络抓取、人工智能、网络安全、云计算等等。 !根据最近的开发者调查,可以看出Python目前是仅次于 JavaScript 的第二大最受欢迎的编程语言,并且在未来几年内很容易迅速崛起。对Python开发人员的需求显着上升,尤其是在过去几个月中,因此学习Python可以为您提供一些非常好的职业选择。

10-Python 代码片段用于编程问题

所以如果你是一名Python开发者,这篇文章绝对适合你。今天,我们将讨论Python代码片段及其简要说明,这些片段对开发人员和程序员的日常生活非常有用。我们将研究经常出现的各种编码问题,以及如何使用此处提供的Python代码片段来解决它们。所以让我们开始吧!

1. 使用 If-Else 进行列表理解

Python中的列表推导非常有用且功能强大。它们将代码长度缩短到很长,并使其更具可读性。在下面的代码中,我们可以看到我们正在检查 6 的倍数,然后使用列表中的 if-else 条件检查 2 和 3 的倍数,这在很大程度上减少了代码。

Python3
my_list = ['Multiple of 6' if i % 6 == 0 
           else 'Multiple of 2' if i % 2 == 0 
           else 'Multiple of 3' if i % 3 == 0 
           else i for i in range(1, 20)]
print(my_list)


Python3
my_dict1 = {'a' : 1, 'b' : 2, 'c' : 3}
my_dict2 = {'d' : 4, 'e' : 5, 'f' : 6}
  
# Method 1
result = { **my_dict1, **my_dict2}
print(result)
  
# Method 2
result = my_dict1.copy()
result.update(my_dict2)
print(result)
  
# Method 3
result = {key: value for d in (my_dict1, my_dict2) for key, value in d.items()}
print(result)


Python3
# Open a file
f = open('filename.txt')
  
  
# Read from a file
f = open('filename.txt', 'r')
  
# To read the whole file
print(f.read())
  
# To read single line
print(f.readline())
  
  
# Write to a file
f = open('filename.txt', 'w')
f.write('Writing into a file \n')
  
  
# Closing a file
f.close()


Python3
import time
  
start_time = time.time()
  
# printing all even numbers till 20
for i in range(20):
  if i % 2 == 0:
    print(i, end = " ")
  
end_time = time.time()
time_taken = end_time - start_time
print("\nTime: ", time_taken)


Python3
person = [
  {
    'name' : 'alice',
    'age' : 22,
    'id' : 92345
  },
  {
    'name' : 'bob',
    'age' : 24,
    'id' : 52353
  },
  {
    'name' : 'tom',
    'age' : 23,
    'id' : 62257
  }
]
  
# Method 1
person.sort(key=lambda item: item.get("id"))
print(person)
  
# Method 2
person = sorted(person, key=lambda item: item.get("id"))
print(person)


Python3
my_list = [8,4,8,2,2,5,8,0,3,5,2,5,8,9,3,8]
print("Most frequent item:", max(set(my_list), key=my_list.count))


Python3
num1, num2 = 2,0
try:
    print(num1 / num2)
except ZeroDivisionError:
    print("Exception! Division by Zero not permitted.")
finally:
    print("Finally block.")


Python3
records = [
  "Vani Gupta, University of Hyderabad",
  "Elon Musk, Tesla",
  "Bill Gates, Microsoft",
  "Steve Jobs, Apple"
]
  
# Method 1
name = "Vani"
for record in records:
    if record.find(name) >= 0:
        print(record)
  
# Method 2
name = "Musk"
for record in records:
    if name in record:
        print(record)


Python3
language = "Python"
  
# Method 1
print(language + " is my favourite programming language.")
  
# Method 2
print(f"I code in {language}")
  
# Method 3
print("%s is very easy to learn." % (language))
  
# Method 4
print("I like the {} programming language.".format(language))


Python3
ugly_list = [10,12,36,[41,59,63],[77],81,93]
flat = []
for i in ugly_list:
    if isinstance(i, list): flat.extend(i)
    else: flat.append(i)
print(flat)


2.合并两个字典

合并两个字典或附加它们可能听起来很混乱。但令人惊讶的是,有不止一种方法可以合并两个字典。在下面的代码中,第一种方法使用字典解包,其中两个字典一起解包为result 。在第二种方法中,我们首先将第一个字典复制到结果中,然后使用第二个字典的内容对其进行更新。第三种方法是使用字典理解的简单实现,类似于我们在上面的列表理解中看到的。

Python3

my_dict1 = {'a' : 1, 'b' : 2, 'c' : 3}
my_dict2 = {'d' : 4, 'e' : 5, 'f' : 6}
  
# Method 1
result = { **my_dict1, **my_dict2}
print(result)
  
# Method 2
result = my_dict1.copy()
result.update(my_dict2)
print(result)
  
# Method 3
result = {key: value for d in (my_dict1, my_dict2) for key, value in d.items()}
print(result)

3.文件处理

文件处理用于各种Python程序,尤其是与我们需要读取大量逗号分隔值的数据相关的程序。文件处理具有各种操作,例如打开文件、读取文件、写入文件和关闭文件。

Python3

# Open a file
f = open('filename.txt')
  
  
# Read from a file
f = open('filename.txt', 'r')
  
# To read the whole file
print(f.read())
  
# To read single line
print(f.readline())
  
  
# Write to a file
f = open('filename.txt', 'w')
f.write('Writing into a file \n')
  
  
# Closing a file
f.close()

4.计算执行时间

通常需要优化代码和分析性能指标。在这里,时间图书馆来帮忙。我们可以测量代码的运行时间并对其进行优化。我们也可以用它来衡量两段代码做相同工作的运行时间,以便我们可以选择最优化的一段。

Python3

import time
  
start_time = time.time()
  
# printing all even numbers till 20
for i in range(20):
  if i % 2 == 0:
    print(i, end = " ")
  
end_time = time.time()
time_taken = end_time - start_time
print("\nTime: ", time_taken)

5. 对字典列表进行排序

排序字典列表起初听起来令人生畏,但我们可以使用两种不同但相似的方法来做到这一点。我们可以简单地使用内置的sorted()sort()函数,它使用内部的 lambda函数对列表起作用,该函数根据字典的“id”键对字典进行排序。在第一种方法中,返回类型为 None 因为更改已经到位,另一方面,在第二种方法中,返回一个新的排序字典列表。

Python3

person = [
  {
    'name' : 'alice',
    'age' : 22,
    'id' : 92345
  },
  {
    'name' : 'bob',
    'age' : 24,
    'id' : 52353
  },
  {
    'name' : 'tom',
    'age' : 23,
    'id' : 62257
  }
]
  
# Method 1
person.sort(key=lambda item: item.get("id"))
print(person)
  
# Method 2
person = sorted(person, key=lambda item: item.get("id"))
print(person)

6. 寻找最高频率元素

我们可以通过将键作为元素的计数,即它们出现的次数,来找到出现时间最长的元素。

Python3

my_list = [8,4,8,2,2,5,8,0,3,5,2,5,8,9,3,8]
print("Most frequent item:", max(set(my_list), key=my_list.count))

7. 错误处理

错误处理是使用 try-catch (和 finally)来消除执行时突然停止的任何可能性。可能导致错误的语句被放入一个 try 块中,然后是一个捕获异常(如果有的话)的 except 块,然后我们有一个无论如何都会执行的“finally”块,并且是可选的。

Python3

num1, num2 = 2,0
try:
    print(num1 / num2)
except ZeroDivisionError:
    print("Exception! Division by Zero not permitted.")
finally:
    print("Finally block.")

8. 在字符串列表中查找子字符串

这又是一段Python程序员经常遇到的非常常见的代码。如果我们需要在字符串列表中查找子字符串(也可以应用于更大的字符串而不仅仅是列表),我们可以使用 find() 方法,如果字符串中不存在该值,则返回 -1,或者返回第一次出现。在第二种方法中,我们可以直接使用in运算符来查看字符串中是否存在所需的子字符串。

Python3

records = [
  "Vani Gupta, University of Hyderabad",
  "Elon Musk, Tesla",
  "Bill Gates, Microsoft",
  "Steve Jobs, Apple"
]
  
# Method 1
name = "Vani"
for record in records:
    if record.find(name) >= 0:
        print(record)
  
# Method 2
name = "Musk"
for record in records:
    if name in record:
        print(record)

9. 字符串格式化

字符串格式化用于格式化或修改字符串。有很多方法可以完成字符串格式化。在第一种方法中,我们使用了简单的将字符串相加的基本连接。在第二种方法中,我们使用 f-strings,其中变量名写在大括号中,并在运行时被替换。与第二种方法类似,我们有第三种方法,我们使用 %s,其中 s 表示它是一个字符串,在第四种方法中,我们使用 format()函数,它接受要插入的字符串或变量在字符串中作为参数,并将其放置在看到花括号的任何位置。

Python3

language = "Python"
  
# Method 1
print(language + " is my favourite programming language.")
  
# Method 2
print(f"I code in {language}")
  
# Method 3
print("%s is very easy to learn." % (language))
  
# Method 4
print("I like the {} programming language.".format(language))

10. 扁平化列表

要展平或展开包含其他可变长度和数字列表的列表,我们可以使用 append() 和 extend() 方法并继续将其添加到新列表中。这两种方法的区别在于 append() 将单个变量添加到列表的末尾,使得列表的长度增加 1,而 extends() 将列表中的所有元素一个一个地作为参数传递给原始列表的末尾。

Python3

ugly_list = [10,12,36,[41,59,63],[77],81,93]
flat = []
for i in ugly_list:
    if isinstance(i, list): flat.extend(i)
    else: flat.append(i)
print(flat)

如果您使用Python编程语言,这些是一些经常使用的Python代码片段。希望你发现这些有用!