目录
3、定义一个不可变集合,向不可变集合中添加元素或者修改已有元素,并捕获异常
1、能够熟练进行字符串、列表、元组和set之间的转换。
>>> # 字符串与集合互转
>>> a=set("abcd") #字符串转集合
>>> a
{'c', 'b', 'd', 'a'}
>>> b="".join(list(a)) #集合转字符串
>>> b
'cbda'
>>> a=set([1,2,3,4,5]) #列表转集合
>>> a
{1, 2, 3, 4, 5}
>>> b=list(a) #集合转列表
>>> a
{1, 2, 3, 4, 5}
>>> b
[1, 2, 3, 4, 5]
>>> a=set((1,2,"ab","c",3)) #元组转集合
>>> a
{1, 2, 3, 'ab', 'c'}
>>> b=tuple(a) #集合转元组
>>> b
(1, 2, 3, 'ab', 'c')
>>> # 字符串和元组互转
>>> "".join(("a","b","c"))
'abc'
>>> tuple("abc")
('a', 'b', 'c')
2、结合set对象,统计某个list出现的重复元素个数
>>> l = [1,2,3,2,3,2,5,6,11,4,5,1,1,2]
>>> s = set(l)
>>> len(l)-len(s)
7
3、定义一个不可变集合,向不可变集合中添加元素或者修改已有元素,并捕获异常
>>> a = frozenset([1,2,3,3,4,5])
>>> try:
... a.add(6)
... except AttributeError as e:
... print("添加元素出错:",e)
... except Exception as e:
... print(e)
... else:
... print("添加元素成功")
...
添加元素出错: 'frozenset' object has no attribute 'add'
4、列出你所有知道的排重方法
L = [1,2,3,2,3,2,5,6,11,4,5,1,1,2]
# 方法1
s = list(set(L))
print(s)
# 方法2
d = dict.fromkeys(L)
print(list(d.keys()))
# 方法3
result = []
for i in L:
if i not in result:
result.append(i)
print(result)
#方法4
new_L = L
for num in new_L:
for i in range(new_L.count(num)-1):
new_L.remove(num)
print(new_L)
# 方法5
d={i:L.count(i) for i in L}
print([i for i in d])
# 方法6:没看懂
from functools import reduce
func = lambda x,y : x if y in x else x + [y]
print(reduce(func,[[],] + L))