2021-04-12

Python第六周笔记

首先,回顾一下上次的内容:字典
<1111111111> 字典推导式:

s = {x:x.strip() for x in (’ he ', ‘she ‘, ’ I’)}
s
{’ he ‘: ‘he’, ’ I’: ‘I’, 'she ': ‘she’}

for k, v in s.items():
print(k, ‘:’, v)

he : he
I : I
she : she

{i:str(i) for i in range(1, 5)}
{1: ‘1’, 2: ‘2’, 3: ‘3’, 4: ‘4’}

x = [‘A’, ‘B’, ‘C’, ‘D’]
y = [‘a’, ‘b’, ‘b’, ‘d’]
{i:j for i,j in zip(x,y)}
{‘A’: ‘a’, ‘C’: ‘b’, ‘B’: ‘b’, ‘D’: ‘d’}

<222222222> 应用案例:
输入一串字符,统计其中单词出现的次数,单词之间用空格分隔。
s=input(“input string:”)
s_list=s.split() #单词间以空格分隔
word_dict={}
for word in s_list:
word_dict[word]=word_dict.get(word,0)+1
print(word_dict)

知识内容:
一:集合
集合是无序、可变序列,使用一对大括号界定,元素不可重复,同一个集合中每个元素都是唯一的。
集合中只能包含数字、字符串、元组等不可变类型(或者说可哈希)的数据,而不能包含列表、字典、集合等可变类型的数据。
1.集合的创建与删除
使用set将其他类型数据转换为集合

a_set = set(range(8,14))
a_set
{8, 9, 10, 11, 12, 13}

b_set = set([0, 1, 2, 3, 0, 1, 2, 3, 7, 8]) #自动去除重复
b_set
{0, 1, 2, 3, 7, 8}

c_set = set() #空集合
c_set
set()

使用del删除整个集合
当不再使用某个集合时,可以使用del命令删除整个集合。集合对象的pop()方法弹出并删除其中一个元素,remove()方法直接删除指定元素,clear()方法清空集合,discard()删除指定元素。

2.集合操作
Python集合支持交集、并集、差集等运算

a_set = set([8, 9, 10, 11, 12, 13])
b_set = {0, 1, 2, 3, 7, 8}
a_set | b_set #并集
{0, 1, 2, 3, 7, 8, 9, 10, 11, 12, 13}

a_set.union(b_set) #并集
{0, 1, 2, 3, 7, 8, 9, 10, 11, 12, 13}

a_set & b_set #交集
{8}

a_set.intersection(b_set) #交集
{8}

a_set.difference(b_set) #差集
{9, 10, 11, 12, 13}

a_set - b_set
{9, 10, 11, 12, 13}

a_set.symmetric_difference(b_set) #对称差集
{0, 1, 2, 3, 7, 9, 10, 11, 12, 13}

a_set ^ b_set
{0, 1, 2, 3, 7, 9, 10, 11, 12, 13}

x = {1, 2, 3}
y = {1, 2, 5}
z = {1, 2, 3, 4}
x.issubset(y) #测试是否为子集
False

x.issubset(z)
True

{3} & {4}
set()

{3}.isdisjoint({4}) #如果两个集合的交集为空,返回True
True

集合包含关系测试

x = {1, 2, 3}
y = {1, 2, 5}
z = {1, 2, 3, 4}
x < y #比较集合大小/包含关系
False

x < z #真子集
True

y < z
False

{1, 2, 3} <= {1, 2, 3} #子集
True

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值