Python中怎么计算列表偶数和 python求偶数列表_正则表达式

1. 小说中的单词频次的统计

Re库:Re库是Python的标准库,主要用于字符串匹配。

方法

解释说明

re.search()

在一个字符串中搜索匹配正则表达式的第一个位置,返回match对象

re.match()

从一个字符串的开始位置起匹配正则表达式,返回match对象

re.findall()

搜索字符串,以列表类型返回全部能匹配的字符串

re.split()

将一个字符串按照正则表达式匹配结果进行分割,返回列表类型

re.finditer()

搜索字符串,返回一个匹配结果的迭代类型,每个迭代元素是match对象

re.sub()

字符串中替换所有匹配正则表达式的子串,返回替换后的字符串

代码如下:

# 小说中的单词频次的统计
import re  # 导入正则表达式库

f = open('LOVE.txt', 'r')  # 以只读的方式打开文件,注意文件路径
txt = f.read()  # 读取进来的数据类型是字符串
f.close()  # 关闭文件,释放内存
txt = txt.lower()  # 将所有字母变为小写
# 去除小说中的标点符号(将txt文件中的,.?:"\'!-用空代替)
txt = re.sub('[,.?:"\'!-]', '', txt)  
words = txt.split()  # 单词分割
word_sq = {}  # 单词频次统计容器
# 单词频次统计
for i in words:
    if i not in word_sq.keys():
        word_sq[i] = 1
    else:
        word_sq[i] += 1
# 利用键值对中的 值 来进行降序排列
a = sorted(word_sq.items(), key=lambda x: x[1], reverse=True)  
print('该小说中的单词频次为:', a)

结果为:该小说中的单词频次为: [(‘the’, 7346), (‘and’, 4602), (‘of’, 3490), (‘to’, 3104), (‘a’, 3033),…]


2. 自定义求序列偶数个数的函数

# 自定义函数:求序列中偶数个数
def even(x):
    z = 0
    for i in x:
        if i % 2 == 0:  # if i % 2 != 0: 求奇数
            z += 1
            print('偶数位置:', [i])
    return z

a = even([1, 2, 3, 4, 5, 6])  # 调用函数even()
print('序列中偶数的个数为:', a)

3. 求曲边图形的面积

Python中怎么计算列表偶数和 python求偶数列表_正则表达式_02


将各小矩形的高度存放至一列表y中,将各高度x乘以宽度width,得各矩形面积,然后求和s/S。

Python中怎么计算列表偶数和 python求偶数列表_python_03


代码如下:

# 求曲边图形的面积
import math  # 导入数学库
n = 20000  # 分块数
width = 2*math.pi/n  # 宽度
# 方法一:利用for循环构建
x = []  # 宽
y = []  # 高
for i in range(n):
    x.append(i*width)
for i in x:
    y.append(abs(math.sin(i)))
S = sum(y)*width
print('曲边图形的面积为:', '%.2f' % S)

# 方法二:利用列表推导式构建
s = [abs(math.sin(i*width))*width for i in range(n)]
print('曲边图形的面积为:', sum(s))

结果为:
曲边图形的面积为: 4.00
曲边图形的面积为: 3.999999999671082


4. 冒泡排序

对序列[17.00, 21.50, 65.07, 20.91, 2.00, 30.16, -10.01, 27.45]]按从小到大顺序进行排列

# 冒泡排序
x = [17.00, 21.50, 65.07, 20.91, 2.00, 30.16, -10.01, 27.45]
n = len(x)  # 获取数组的长度
for i in range(n):
    for j in range(i):
        if x[j] > x[i]:
            x[i], x[j] = x[j], x[i]
print('排序结果:', x)

排序结果: [-10.01, 2.0, 17.0, 20.91, 21.5, 27.45, 30.16, 65.07]