6.寻找字符串中唯- -的元素
str3 = " wwweeer ftttg "
print(''.join(set(str3)))
#对于列表的筛查
list1 = [2,4,5,6,7,1,2]
print(list(set(list1)))
运行结果
ftgwer
[1,2,4,5,6,7]
在python中,对于唯一值的筛查,首先应该想到对于set的利用,set可以帮助我们快速的筛查重复的元素,上述程序中, set不仅可以对字符串,而且还可以针对列表进行筛查。
7.将元素进行重复
str3 = "python"
list2 = [1, 2, 3]
#乘法表述
print(str3 * 2)
print(list2 * 2)
str3 = "python"
list2 = [1, 2,3]
str3_ _1 = ""
list2_ 1 = []
#加法表述
for i in range(2):
str3_ 1 += str3
list2_ 1.extend(list2)
print (str3_ 1)
print (list2_ 1)
运行结果
pythonpython
[1,2,3,1,2,3]
pythonpython
[1,2,3,1,2,3]
将元素进行重复,可以采用“乘法”的形势,直接乘以原来的元素,也可以采用“加法”的形式,更方便理解。
8.基于列表的扩展
list3 = [2, 2,2,2]
print([2*x for x in list3])
#列表的展开
list4 = [[1,2,3], [4, 5,6],[4, 3],[1]]
print([i for k in list4 for i in k])
运行结果
[4, 4, 4, 4]
[1,2,3,4,5,6,4,3,1]
基于列表的扩展,可以充分利用列表的特性和python语法的简洁性,来产生新的列表,或者将嵌套的列表进行展开。
9.将列表展开
from iteration_utilities import deepflatten
#方法1
list17 = [[12, 5, 3],[2, 4, [5],[6, 9,7]],[5, 8,[9,[10,12]1]]
print(list(deepflatten(list17)))
print("===================================")
#方法2
def flatten(lst):
res = []
for i in lst:
if isinstance(i, list):
res.extend(flatten(i))
else:
res .append(i)
return res
print (flatten(list17))
运行结果
[12,5,3,2,4,5,6,9,7,5,8,9,10,12]
[12,5,3,2,4,5,6,9,7,5,8,9,10,12]
首先,方法1中,我们调用的是iteration_ utilities 中的deepflatten函数,第二种方法直接采用递归的方法,我们自己来实现复杂列表的展平,便可以得到展开后的列表。
10.二值交换
a = 1
b = 2
#方法1
a, b = b, a
print(a, b) #此时a =2,b= 1
#方法2
c = a +b
a = c - a
b = c - a
print(a, b) # 此时a = 1, b = 2,恢复交换之前的值
运行结果
2 1
1 2
Python中的二值交换,可以直接采用交换的方式,如上图的方法1,而方法2所示的方法,借助第三个变量,来实现了两个数值的交换。