python常规函数测试

1. strip(),lstrip(),rstrip()

作用:返回所给的字符串的副本,并删除前缀和后缀字符,如果函数给定的值为空(strip()),则删除特殊字符[’\r’,’\t’,’\n’,空格],如果函数为strip(‘a’),则删除前缀和后缀中的字符 ‘a’

  • 代码
a = " \t zhang zh an g \n"
# 空格+\t+空格+zhang zh an g+空格+\n
# 共 18 个字符,所以 a 的长度为 18
print(f'len(a)={len(a)}')
print(f'a={a}')
# strip函数的作用是消除字符串 前面和后面的特殊字符
# 这里的字符有的是 \r,\t,\n,空格,字符串中间的字符不处理
a_strip = a.strip()
# 所以 a_strip 长度为 18-5=13
print(f'len(a_strip)={len(a_strip)}')
print(f'a_strip={a_strip}')
# 左边的特殊字符为 3 个
# 右边的特殊字符为 2 个
# a_lstrip = 18 - 3 = 15
# a_rstrip = 18 - 2 = 16
a_lstrip = a.lstrip()
print(f'len(a_lstrip)={len(a_lstrip)}')
print(f'a_lstrip={a_lstrip}')
a_rstrip = a.rstrip()
print(f'len(a_rstrip)={len(a_rstrip)}')
print(f'a_rstrip={a_rstrip}')
  • 结果
len(a)=18
a= 	 zhang zh an g 

len(a_strip)=13
a_strip=zhang zh an g
len(a_lstrip)=15
a_lstrip=zhang zh an g 

len(a_rstrip)=16
a_rstrip= 	 zhang zh an g

2. split()

split的作用是对字符串进行分割

str.split(str="", num=string.count(str)).
  • str ="" :指定分割的符号,
  • num :分割次数,默认为-1,分割所有
  • 代码
# 1.中间一个空格
s1 = "we are the family"
# 2.中间两个空格
s2 = "we  are  the  family"
# 3 中间三个空格
s3 = "we   are   the   family"

s1_splita = s1.split(" ")
s2_splita = s2.split(" ")
s3_splita = s3.split(" ")

print("*"*30)
print("用s.split('')")
print(f's1_splita={s1_splita}')
print(f's2_splita={s2_splita}')
print(f's3_splita={s3_splita}')
print("*"*30)
print("用s.split()")
s1_splitb = s1.split()
s2_splitb = s2.split()
s3_splitb = s3.split()
print(f's1_splitb={s1_splitb}')
print(f's2_splitb={s2_splitb}')
print(f's3_splitb={s3_splitb}')
  • 结果
******************************
用s.split('')
s1_splita=['we', 'are', 'the', 'family']
s2_splita=['we', '', 'are', '', 'the', '', 'family']
s3_splita=['we', '', '', 'are', '', '', 'the', '', '', 'family']
******************************
用s.split()
s1_splitb=['we', 'are', 'the', 'family']
s2_splitb=['we', 'are', 'the', 'family']
s3_splitb=['we', 'are', 'the', 'family']

3. readlines()& readline()

readlines : 一次性读取每行数据,按行存储,返回一个 list 方便我们调用
readline :一次只读取一行,如果要读取第二行,只能重复此命令

  • 代码
    我们新建一个 test.txt文件
    内容如下:
今天周六,出去玩了一圈
明天周日,明天一定要好好学习!
print('*'*100)
print('用 readlines 作为函数调用')
list = []
with open('test.txt', 'r') as f:
	ff = f.readlines()
	print(f'ff={ff}')
	for line in ff:
		line = line.strip()
		print(f'line={line}')
		list.append(line)
print(f'list={list}')

print('*'*100)
print('用 readline 作为函数调用')
list_line = []
with open('test.txt', 'r') as f:
	ff = f.readline()
	print(f'ff={ff}')
	for line in ff:
		line = line.strip()
		print(f'line={line}')
		list_line.append(line)
print(f'list={list_line}')
  • 结果
****************************************************************************************************
用 readlines 作为函数调用
ff=['今天周六,出去玩了一圈\n', '明天周日,明天一定要好好学习!']
line=今天周六,出去玩了一圈
line=明天周日,明天一定要好好学习!
list=['今天周六,出去玩了一圈', '明天周日,明天一定要好好学习!']
****************************************************************************************************
用 readline 作为函数调用
ff=今天周六,出去玩了一圈

line=今
line=天
line=周
line=六
line=,
line=出
line=去
line=玩
line=了
line=一
line=圈
line=
list=['今', '天', '周', '六', ',', '出', '去', '玩', '了', '一', '圈', '']

4. most_common

在collection库中有一个Counter类,可以统计字符串个数

  • 代码
from collections import Counter

str = 'aaabbbbcccccddddddeeeeeeee'
user_counter = Counter(str)
# 统计字符串中字符数量最高的 3 个

common_most_user_counter = user_counter.most_common(3)
print(f'common_most_user_counter={common_most_user_counter}')
  • 结果
common_most_user_counter=[('e', 8), ('d', 6), ('c', 5)]

5. for in enumerate

enumerate 的作用是枚举一个,现在介绍三种方式遍历列表

  • 代码
# 1. 用 for in enumerate 枚举
print('# 1. 用 for in enumerate 枚举')
list = ['one', 'two', 'tree', 'four']
for element in enumerate(list):
	print(f'element[1]={element[1]}')
print('*'*30)
# 2. 用 for in
print('# 2. 用 for in')
for i_element in list:
	print(f'i_element={i_element}')

print('*'*30)
# 3. 用 for in range
print('# 3. 用 for in range')
for i in range(len(list)):
	print(f'i_range={list[i]}')
  • 结果
# 1. 用 for in enumerate 枚举
element[1]=one
element[1]=two
element[1]=tree
element[1]=four
******************************
# 2. 用 for in
i_element=one
i_element=two
i_element=tree
i_element=four
******************************
# 3. 用 for in range
i_range=one
i_range=two
i_range=tree
i_range=four

6. os.makedirs

7. shutil.copy

8. x for y in z x for y

相当于嵌入了双层的for in 循环,第一层是将 z 沿着 y 方向展开,第二层是将 y 沿着 x 方向展开

def f(z):
	for y in z:
		for x in y:
			yield x
  • 代码
# 定义一个 3行4列的矩阵列表
sentens = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]
print(f'sentens.__sizeof__()={sentens.__sizeof__()}')
print(f'sentens={sentens}')

# 双for..in 循环
char_word = [x for y in sentens for x in y]
print(f'char_word={char_word}')

# 展开循环
list = []
for m in sentens:
	for n in m:
		list.append(n)

print(f'list={list}')
  • 结果
sentens.__sizeof__()= 64
sentens = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]
char_word = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]

9. re.sub

  • 代码
import re

str = "大家好,我是一个程序员小白。I 'm so glad to introduce myself," \
	  " and I’m 18 years old.   Today is 2020/01/01. " \
	  "It is a wonderful DAY! @HHHHello,,,#111ComeHere222...66?AA?zz?——http://welcome.cn"

# 只匹配大写字母,将所有的小写字母替换成 '@'
print(re.sub(r'[A-Z]', '@', str))
# 只匹配小写字母,将所有的小写字母替换成 '*'
print(re.sub(r'[a-z]', '*', str))
# 只匹配大小写字母,将所有的小写字母替换成 '#'
print(re.sub(r'[A-Za-z]', '#', str))
  • 结果
大家好,我是一个程序员小白。@ 'm so glad to introduce myself, and @’m 18 years old.   @oday is 2020/01/01. @t is a wonderful @@@! @@@@@ello,,,#111@ome@ere222...66?@@?zz?——http://welcome.cn
大家好,我是一个程序员小白。I '* ** **** ** ********* ******, *** I’* 18 ***** ***.   T**** ** 2020/01/01. I* ** * ********* DAY! @HHHH****,,,#111C***H***222...66?AA?**?——****://*******.**
大家好,我是一个程序员小白。# '# ## #### ## ######### ######, ### #’# 18 ##### ###.   ##### ## 2020/01/01. ## ## # ######### ###! @########,,,#111########222...66?##?##?——####://#######.##

10.@property

11. sorted(d.item(),key=lambda x:x[1])

表示对d.item()里面的值进行排序,key=lambda x:x[1] 表示按照第2维度即value值来排序

  • 代码
Original_data = {"a": 15, "m": 10, "q": 37, "d": 24}
print(f'Original_data={Original_data}')
# 按照 key 排序 即: [a,m,q,d]进行排序得到[a,d,m,q]
# 故可得:sort_x_0=[('a', 15), ('d', 24), ('m', 10), ('q', 37)]
sort_data_key_x_0 = sorted(Original_data.items(), key=lambda x: x[0])
# 按照 value 排序 即:[15,10,37,24]进行排序得到 [10,15,24,37]
# 故可得; sort_x_1=[('m', 10), ('a', 15), ('d', 24), ('q', 37)]
sort_data_value_x_1 = sorted(Original_data.items(), key=lambda x: x[1])

# 打印结果
print(f'sort_data_key_x_0={sort_data_key_x_0}')
print(f'sort_data_value_x_1={sort_data_value_x_1}')

  • 结果
Original_data={'a': 15, 'm': 10, 'q': 37, 'd': 24}
sort_data_key_x_0=[('a', 15), ('d', 24), ('m', 10), ('q', 37)]
sort_data_value_x_1=[('m', 10), ('a', 15), ('d', 24), ('q', 37)]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值