Python代码片段

#线程
# 第一个工作函数
def worker1():
    for i in range(5):
        print("Worker 1: ", i)
        time.sleep(1)

# 第二个工作函数
def worker2():
    for i in range(15):
        print("Worker 2: ", i)

# 创建两个线程
t1 = threading.Thread(target=worker1)
t2 = threading.Thread(target=worker2)

# 启动线程
t1.start()
t2.start()

# 等待线程结束
t1.join()
t2.join()

字符串格式化

这个方便的代码片段将让你在Python中格式化你的字符串。下面我分享了三种格式化字符串的方法。请看下面的代码。

# 字符串格式化
name = "Wick"
age = "24"

# 使用 f-字符串
print(f"Hello {name}, you are {age} years old")

# 使用 .format() 方法
print("Hello {}, you are {} years old".format(name, age))

# 使用 %s 格式符
print("Hello %s, you are %s years old" % (name, age))
# 处理CSV

import csv

# 读取CSV
with open('mydata.csv', 'r') as file:
    r = csv.reader(file)  # 创建CSV reader对象
    for row in r:         # 遍历每一行
        print(row)        # 输出每一行数据

# 写入CSV
with open('mydata.csv', 'w', newline='') as file:
    w = csv.writer(file)  # 创建CSV writer对象
    w.writerow(['name', 'age'])     # 写入一行数据
    w.writerow(['Mathew', '23'])    

# 使用列表推导式# 传统方法data = [100, 200, 300, 400, 500]result = []for x in data: result.append(x * 20)print(result) # [2000, 4000, 6000, 8000, 10000]

# 推导式方法data = [100, 200, 300, 400, 500]result = [x * 20 for x in data]print(result) # [2000, 4000, 6000, 8000, 10000]

# 映射和过滤
# 使用map
def mul(n):
    return n * n

num = [1, 2, 3, 4, 5]
result = list(map(mul, num)) # 使用map函数对列表num中的每个元素应用mul函数,返回新的列表
print(result) # [1, 4, 9, 16, 25]

# 使用filter
def is_odd(n):
    return n % 2 == 1

num = [1, 2, 3, 4, 5]
result = list(filter(is_odd, num)) # 使用filter函数对列表num中的每个元素应用is_odd函数,过滤出符合条件的元素,返回新的列表
print(result) # [1, 3, 5]
# 使用生成器
def iterate(n):
    i = 0
    while i < n:
        yield i
        i += 1

for i in iterate(10):
    print(i)
# 使用字典推导式
# 普通方式
data = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
result = {}
for key, value in data.items(): # 遍历字典data中的键值对
    if value > 2: # 如果值大于2
        result[key] = value # 将键值对添加到结果字典result中
print(result) # {'c': 3, 'd': 4}

# 推导式方式
data = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
result = {key: value for key, value in data.items() if value > 2} # 使用字典推导式,筛选出值大于2的键值对,并构造新的字典result
print(result) # {'c': 3, 'd': 4}

# 格式化输出
输出结果:
{'c': 3, 'd': 4}
{'c': 3, 'd': 4}
# 正则表达式
import re
# 在字符串中查找匹配的模式
string = "A string with numbers 1234567890"
result = re.search(r"\d\d\d\d\d\d\d\d\d\d", string) # 在字符串中查找匹配的模式,该模式表示10个数字的序列
print(result.group()) # 打印匹配到的结果
# 查找电子邮件地址
string = "My email is xyz@email.com"
result = re.search(r"\w+@\w+\.\w+", string) # 在字符串中查找匹配的模式,该模式表示一个或多个单词字符、@符号、一个或多个单词字符、.符号和一个或多个单词字符
print(result.group()) # 打印匹配到的结果

# \w+ 表示一个或多个单词字符
# \w* 表示零个或多个单词字符
# \w? 表示零个或一个单词字符
# \d+ 表示一个或多个数字
# a-z 表示从a到z的小写字母
# A-Z 表示从A到Z的大写字母
# \s+ 表示一个或多个空格字符

# 格式化输出
输出结果:
1234567890
xyz@email.com