10.10Python笔记-dict删除/方法/特点、set

【set】set里面的元素是不允许重复的,set里面的元素是没有顺序的,set元素是区分大小写的

【set创建】使用set(),并传入一个list,list的元素将会被转换成set的元素

【读取set元素】

'Alice' in name_set # ==> True

【添加set元素】 如果添加一个已经存在的元素,不会报错,也不会改变什么

单个添加:

name_set.add('Gina')

多个添加:直接添加list

names = ['Alice', 'Bob', 'Candy', 'David', 'Ellena']
new_names = ['Hally', 'Isen', 'Jenny', 'Karl']
name_set = set(names)
name_set.update(new_names)

 【删除set的元素】

方法一:remove()方法:如果remove的元素不在set里面的话,那么将会引发错误,所以需要先判断是否在里面再读取

方法二:使用discard()方法删除元素,当元素不存在时,使用discard()并不会引发错误

【清楚set的元素】清除所有元素的方法clear()

name_set.clear()
print(name_set) # ==> set([])

 【set集合的子集和超集

s1 = set([1, 2, 3, 4, 5])
s2 = set([1, 2, 3, 4, 5, 6, 7, 8, 9])
# 判断s1是否为s2的子集
s1.issubset(s2) # ==> True
# 判断s2是否为s1的超集
s2.issuperset(s1) # ==> True

【set判断集合是否重合】isdisjoint()方法,可以快速判断两个集合是否有重合,如果有重合,返回False,否则返回True

s1 = set([1, 2, 3, 4, 5])
s2 = set([1, 2, 3, 4, 5, 6, 7, 8, 9])
s1.isdisjoint(s2) # ==> False,因为有重复元素1、2、3、4、5

【dict删除】pop()方法需要指定需要删除的元素的key,并返回对应的value,当key不存在时,同样会引起错误。

【dict的keys】可以返回dict的所有key

for key in d.keys():
    print(key)
# ==> Alice
# ==> Bob
# ==> Candy

dict的values获取dict所有的value 

for key in d.values():
    print(key)
# ==> [50, 61, 66]
# ==> [80, 61, 66]
# ==> [88, 75, 90]

 【dict清除】clear()函数

d.clear()
print(d) # ==> {}

【dict的特点】

        查找速度快:无论dict有10个元素还是10万个元素,查找速度都一样

        有序与无序:缺点是占用内存大,还会浪费很多内容,有序慢但是占用小

        key不可变:tuple可以作为dict的key,但是list不可以作为dict的key,否则将会报错。

        遍历dict:

        方法一:

for key in d: # 遍历d的key
    value = d[key]
    if value > 60:
        print(key, value)

        方法二:

for key, value in d.items():
    if value > 60:
        print(key, value)
# ==> Candy 75
# ==> David 86

        方法三:打印出来的是完整的一个dict;

1.同学的近三次成绩如下,请把每个同学的每次成绩依次输出。 [用所有能想到的语句写出正确的结果,再对比更优的代码]

# Enter a code
d = {'Alice': [50, 61, 66], 'Bob': [80, 61, 66], 'Candy': [88, 75, 90]}
for key,value in d.items():
    for score in value:
        print(key,score)

2.请使用set表示班里面的五个同学。
'Alice', 'Bob', 'Candy', 'David', 'Ellena'

# Enter a code
L = ['Alice', 'Bob', 'Candy', 'David', 'Ellena']
s = set(L)
print(s)

3.由于name_set不能识别小写的名字,请改进name_set,是小写的名字也能判断在name_set里面。

names = ['Alice', 'Bob', 'Candy', 'David', 'Ellena']
name_set = set(names)
names = ['Alice', 'Bob', 'Candy', 'David', 'Ellena', 'alice', 'bob', 'candy', 'david', 'ellena']
name_set = set(names)
print(name_set) # ==> set(['ellena', 'alice', 'Candy', 'Alice', 'candy', 'Ellena', 'Bob', 'David', 'bob', 'david'])

4.请使用两种方式往空的set中添加以下名字:['Jenny', 'Ellena', 'Alice', 'Candy', 'David', 'Hally', 'Bob', 'Isen', 'Karl']。 

# coding=utf-8
s=set()
s.add('Jenny')
L=['Jenny', 'Ellena', 'Alice', 'Candy', 'David', 'Hally', 'Bob', 'Isen', 'Karl']
s.update(L)
print(s)

5.针对以下set,给定一个list,对于list里面的每个元素,如果set中包含这个元素,就将其删除,否则添加到set里面去。

L = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
S = set([1, 3, 5, 7, 9, 11])
# Enter a code
L = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
S = set([1, 3, 5, 7, 9, 11])
a = 0
for ch in L:
    if ch in S:
        S.remove(ch)
    else:
        S.add(L[a])
    a = a + 1
print(S)

6.已知两个集合s1、s2,请判断两个集合是否有重合,如果有,请把重合的元素打印出来。

s1 = set([1, 2, 3, 4, 5])
s2 = set([1, 2, 3, 4, 5, 6, 7, 8, 9])
# Enter a code
s1 = set([1, 2, 3, 4, 5])
s2 = set([1, 2, 3, 4, 5, 6, 7, 8, 9])
if s1.isdisjoint(s2):
    print('no')
else:
    for ch in s1:
        if ch in s2:
            print(ch)

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值