master
/ 7.1.3 成员关系.ipynb

7.1.3 成员关系.ipynb @masterview markup · raw · history · blame

Notebook

7.3 成员关系

集合支持存在性测试,可用 x in s 和 x not in s操作判断数据x是否包含在集合s中,是否是该集合的成员。

在使用in 时它是先将所要查的数通过hash函数转换为一个巨大的整数,然后直接一步到位,所以它的效率非常高

x in s :如果 x 是集合 s 的成员则返回值值为True,否则为False。

x not in s :如果 x 不是集合 s 的成员则返回值为True,否则为False。即返回x in s 取反后的值。

In [1]:
s = set('Programming')        
print(s)                      # s = {'P', 'a', 'i', 'n', 'm', 'r', 'o', 'g'}
print('k' in s)               # s 中不存在元素'k',返回False
print('P' in s)               # s 中存在元素'P',返回True
print('c' not in s)           # s 中不存在元素'c',返回True
{'o', 'n', 'a', 'r', 'g', 'm', 'i', 'P'}
False
True
True

实例1 查询输入的品牌是否是2019年畅销手机品牌。

In [1]:
# 下面的二维列表中包含2019年畅销手机品牌及其市场份额
sale2019 =  [['华为', '34.3'], ['vivo', '18.5'], ['OPPO', '18.6'], 
             ['小米', '12.3'], ['Apple', '8.6'], ['魅族', '1.8'], 
             ['三星', '1.5'], ['联想', '0.8'], ['中兴', '0.6']]

saleSet2019 = {x[0] for x in sale2019}   # 通过集合推导式得到2019年畅销手机品牌集合

brand = input()            # 输入要查询的品牌
if brand in saleSet2019:   # 判断要查询的品牌是否在集合中
    print(f'{brand}是2019年畅销手机品牌')
else:
    print(f'{brand}不是2019年畅销手机品牌')
华为是2019年畅销手机品牌

实例2 省份查询

In [ ]:
citys = {'北京', '上海', '天津', '重庆'}
autonomous_region = {'内蒙古', '广西', '西藏', '宁夏', '新疆'}
special_administrative_region = {'香港', '澳门'}
province = input()
if province in citys:
    print(f'{province}是直辖市')
elif province in autonomous_region:
    print(f'{province}是自治区')
elif province in special_administrative_region:
    print(f'{province}是特别行政区')
else:
    print(f'{province}是一般省份')
In [ ]: