目录:

题目一:Python中 rstrip()、 lstrip()、 strip() 的用法和区别

题目二:python中append()、expend()函数的用法和区别

题目三:Python中zip()、zip(*zipped)、*zip()函数的用法和区别


题目一:Python中 rstrip()、 lstrip()、 strip() 的用法和区别

考点

这三个函数都是去除头尾字符、空白符的函数

strip: 用来去除头尾字符、空白符(包括\n、\r、\t、' ',即:换行、回车、制表符、空格)

lstrip:用来去除开头字符、空白符(包括\n、\r、\t、' ',即:换行、回车、制表符、空格)

rstrip:用来去除结尾字符、空白符(包括\n、\r、\t、' ',即:换行、回车、制表符、空格)

答案

输入数据时,很有可能会输入多余的空格,或者在一些场景中,字符串前后不允许出现空格和特殊字符,此时就需要去除字符串中的空格和特殊字符。这三个方法只是返回字符串前面或后面空白被删除之后的副本,并不会改变字符串本身。

从字面可以看出r=right,l=left,strip可以表示出字符串格式化的方法,参数是可选的,当参数为空,默认删除string的空白符(包括\n、\r、\t、' ')。但是无论那种方法只能删除开头或是结尾的字符,不能删除中间部分的字符。下面是方法实例:

str1 = "      I love you three thousand times!!!      "
str2 = str1.lstrip()  # 默认是空格
print(str2)  # 
str3 = str1.rstrip()  # 默认是空格
print(str3)  # 
str4 = str1.strip()  # 默认是空格
print(str4)  # 
str5 = str4.strip("!")  # 删除“!”
print(str5)  #

输出结果:

I love you three thousand times!!!      
      I love you three thousand times!!!
I love you three thousand times!!!
I love you three thousand times

 为了更进一步了解它的用法,下面看一看这个实例:

str1 = "      I love you three thousand times!!!      "
str6 = str1.strip().strip("!stI").strip()  
print(str6)  #love you three thousand time

 首先遍历chars中的字符,调用strip() 去除字符中前后的空格变为I love you three thousand times!!!,接着依次去掉字符中的“!”和“s”,因为这时字符中的首尾没有“t”,所以去不掉,再然后调用strip() 在依次去掉“I”和空格,最终输出love you three thousand time。


题目二:python中append()、expend()、insert()函数的用法和区别

考点

a.append(b):是将b原封不动追加到a末尾上,会改变a的值,其中,b可为列表、元组、字符串。

a.extend(b):是将b拆开后追加到a的末尾上,会改变a的值,其中,b可为列表、元组、字符串。

L.insert(index,obj):将指定对象插入到列表中的指定位置。index对象obj需要插入的索引值。obj 是要插入列表中的对象。

答案

这三个方法只是修改列表,没有返回值,所以不能用于赋值,在恰当的位置对原来的列表进行修改,这意味着,该方法不是返回一个修改过的列表,而是直接修改原来的列表。

a.append(b)会把对象整体添加到列表后,添加的时候会把添加的数据当成一个整体进行添加,允许添加任意类型的数据。a.extend(b)会把对象迭代添加到列表后,添加的时候会把添加的数据迭代进行添加,只允许添加可迭代对象数据。

s1_list =["I ","love"," you"]
s2_list = ["three ","thousand ","times"]
s1_list.append(s2_list)
print(s1_list)#['I ', 'love', ' you', ['three ', 'thousand ', 'times']]
s1_list.pop(3)#删除单个或多个元素,根据索引删除.注意:pop删除时会返回被删除的元素
s1_list.extend(s2_list)
print(s1_list)#['I ', 'love', ' you', 'three ', 'thousand ', 'times']
s1_list.insert(6, 'XH')#按索引位插入
print (s1_list)#['I ', 'love', ' you', 'three ', 'thousand ', 'times', 'XH']

题目三:Python中zip()、zip(*zipped)、*zip()函数的用法和区别

考点

zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表

zip(*zipped)中的 *zipped参数,可以list数组,也可以是zip()函数返回的对象。

*zip()函数是zip()函数的逆过程,将zip对象变成原先组合前的数据。

答案

在 Python 3.x 中为了减少内存,zip() 返回的是一个对象。如需展示列表,需手动 list() 转换;如需展示字典,需手动 dict() 转换。当zip()函数中只有一个参数时,zip(iterable)从迭代器中依次取一个元组,组成一个元组。当zip()函数有两个参数时,zip(a,b)函数分别从a和b中取一个元素组成元组,再次将组成的元组组合成一个新的迭代器。a与b的维数相同时,正常组合对应位置的元素。当a与b行或列数不同时,取两者中的最小的行列数。

# 定义三个列表
a = [1, 2, 3]
b = [4, 5, 6]
nums = [['a1', 'a2', 'a3'], ['b1', 'b2', 'b3']]
 # 打包为元组的列表,而且元素个数与最短的列表一致
a_b = zip(a, b)
print(list(a_b))# 输出a_b

iters = zip(*nums)
print(dict(iters))

print("*zip(m, n)返回:", *zip(a, b))
m, n = zip(*zip(a, b))
print("m和n的值分别为:", m, n)

输出结果 :

[(1, 4), (2, 5), (3, 6)]
{'a1': 'b1', 'a2': 'b2', 'a3': 'b3'}
*zip(m, n)返回: (1, 4) (2, 5) (3, 6)
m和n的值分别为: (1, 2, 3) (4, 5, 6)