第八章 集合 课后练习题

35 篇文章 3 订阅
11 篇文章 0 订阅

目录

1、能够熟练进行字符串、列表、元组和set之间的转换。

2、结合set对象,统计某个list出现的重复元素个数

3、定义一个不可变集合,向不可变集合中添加元素或者修改已有元素,并捕获异常

4、列出你所有知道的排重方法


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))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值