集合和字典的Python运算符
以下文章主要讨论集合和字典中使用的运算符。运算符通过使用各种关键字和符号,帮助将现有值组合到更大的句法表达式中。
- 集合:集合类用于表示没有重复的元素集合,并且这些元素没有任何固有的顺序。它由 {} 包围,每个元素由逗号 (,) 分隔,并且是可变的。
例子:
Python3
# set of alphabet
set = {'a', 'b', 'c', 'd', 'e'}
print(set)
Python3
s = {4, 5, 8, 6, 3, 2, 5}
key = 3
x = key in s # containment check
y = key not in s # non-containment check
print(x, y)
Python3
s1 = {'t', 3, 6, 5, 7, 8, 4, 9}
s2 = {5, 7, 8, 9, 't', 4, 3, 6}
# equivalent check
x = s1 == s2
# non-equivalent check
y = s1 != s2
print(x)
print(y)
Python3
s1 = {2, 5, 3, 7, 'c', 'a', 8}
s2 = {3, 7, 8, 'c'}
# subset check
w = s1 <= s2
# proper subset check
x = s1 < s2
# superset check
y = s1 >= s2
# proper superset check
z = s1 > s2
print(w, x, y, z)
Python3
s1 = {2, 5, 3, 7, 'c', 'a', 8}
s2 = {3, 7, 8, 'c', 9, 11, 'd'}
# union
w = s1 | s2
# intersection
x = s1 & s2
# elements which are in s1 but not in s2
# and elements which are in s2 but not in s1
y = s1 ^ s2
# set difference
z = s1-s2
print(w)
print(x)
print(y)
print(z)
Python3
# Example of Dictionary
d = {'jupiter': 'planet', 'sun': 'star'}
print(d)
Python3
dict = {'math': 45, 'english': 60, 'science': 65,
'computer science': 70}
# retrieving value by using key
x = dict['science']
print(x)
# reassigning value
dict['english'] = 80
print(dict)
# deleting
del dict['math']
print(dict)
Python3
dict = {'math': 45, 'english': 60, 'science': 65,
'computer science': 70}
# containment check
x = 'english' in dict
# non-containment check
y = 'hindi' not in dict
print(x)
print(y)
Python3
d1 = {'a': 5, 'b': 7, 'c': 9, 'e': 3}
d2 = {'c': 9, 'a': 5, 'b': 7, 'e': 3}
x = d1 == d2
y = d1 != d2
print(x)
print(y)
输出:
{'c', 'b', 'd', 'e', 'a'}
2. Frozensets:是集合的不可变形式,用于形成集合的集合。
Sets 和frozensets 支持以下运算符:
- key in s:用于检查给定的键是否在集合中。
- 键不在s 中:如果键不在集合中,则返回 True。
例子:
蟒蛇3
s = {4, 5, 8, 6, 3, 2, 5}
key = 3
x = key in s # containment check
y = key not in s # non-containment check
print(x, y)
输出:
True False
- s1 == s2 :检查 s1 等价于 s2。即 s1 的所有元素都在 s2 中,反之亦然。如果 s1 等于 s2,则返回 True。
- s1 != s2 : s1 不等于 s2。即至少 s1 的一个元素不在 s2 中。如果 s1 不等于 s2,则返回 True。
例子:
蟒蛇3
s1 = {'t', 3, 6, 5, 7, 8, 4, 9}
s2 = {5, 7, 8, 9, 't', 4, 3, 6}
# equivalent check
x = s1 == s2
# non-equivalent check
y = s1 != s2
print(x)
print(y)
输出:
True
False
集合的比较不是字典式的,因为集合没有以正确的顺序排列它们的元素。因此,s1 不能大于或小于 s2,反之亦然,相反,它们可以是子集或超集。
- s1 <= s2 : s1 是 s2 的子集。即 s1 的所有元素都在 s2 中,如果 s1 是 s2 的子集,则返回 True。
- s1 < s2 : s1 是 s2 的真子集。即 s1 的所有元素都在 s2 中,但 s2 的所有元素不一定在 s1 中,如果 s1 是 s2 的真子集,则返回 True。
- s1 >= s2 : s1 是 s2 的超集。即 s2 的所有元素都在 s1 中,如果 s1 是 s2 的超集,则返回 True。
- s1 > s2 : s1 是 s2 的真超集。即 s2 的所有元素都在 s1 中,但 s1 的所有元素不一定在 s2 中,如果 s1 是 s2 的适当超集,则返回 True。
例子 :
蟒蛇3
s1 = {2, 5, 3, 7, 'c', 'a', 8}
s2 = {3, 7, 8, 'c'}
# subset check
w = s1 <= s2
# proper subset check
x = s1 < s2
# superset check
y = s1 >= s2
# proper superset check
z = s1 > s2
print(w, x, y, z)
输出:
False False True True
- s1 | s2: s1 和 s2 的并集,不重复返回 s1 和 s2 的元素。
- s1 & s2: s1 和 s2 的交集,返回存在于两个集合中的元素。
- s1 - s2:集合差值,返回在 s1 中但不在 s2 中的元素。
- s1 ˆ s2:恰好在 s1 或 s2 之一中的元素集合,返回在 s1 中但不在 s2 中的元素和在 s2 中但不在 s1 中的元素。
例子:
蟒蛇3
s1 = {2, 5, 3, 7, 'c', 'a', 8}
s2 = {3, 7, 8, 'c', 9, 11, 'd'}
# union
w = s1 | s2
# intersection
x = s1 & s2
# elements which are in s1 but not in s2
# and elements which are in s2 but not in s1
y = s1 ^ s2
# set difference
z = s1-s2
print(w)
print(x)
print(y)
print(z)
输出:
{2, 3, 5, ‘a’, 7, 8, 9, 11, ‘d’, ‘c’}
{8, ‘c’, 3, 7}
{2, 5, 9, ‘d’, 11, ‘a’}
{2, 5, ‘a’}
3.字典:它是不同键与其关联值的映射。我们也使用大括号 { } 来创建字典。
例子:
蟒蛇3
# Example of Dictionary
d = {'jupiter': 'planet', 'sun': 'star'}
print(d)
输出:
{'jupiter': 'planet', 'sun': 'star'}
字典支持以下运算符:
- d[key]:用于从字典中获取与给定键关联的值。
- d[key] = value :它用于设置(或重置)与字典中给定键关联的值。
- del d[key]:用于从字典中删除键及其关联的值。
例子:
蟒蛇3
dict = {'math': 45, 'english': 60, 'science': 65,
'computer science': 70}
# retrieving value by using key
x = dict['science']
print(x)
# reassigning value
dict['english'] = 80
print(dict)
# deleting
del dict['math']
print(dict)
输出:
65
{‘math’: 45, ‘english’: 80, ‘science’: 65, ‘computer science’: 70}
{‘english’: 80, ‘science’: 65, ‘computer science’: 70}
- key in d:用于检查某个键是否在字典中。也称为遏制检查。它返回一个布尔值。
- key not in d:它返回一个布尔值,如果键不在字典中,则返回 True,也称为非包含检查
例子:
蟒蛇3
dict = {'math': 45, 'english': 60, 'science': 65,
'computer science': 70}
# containment check
x = 'english' in dict
# non-containment check
y = 'hindi' not in dict
print(x)
print(y)
输出:
True
True
- d1 == d2:它比较两个字典的键值对,如果找到,则返回 True。
- d1 != d2:比较两个字典的键值对,如果找到则返回True。
例子:
蟒蛇3
d1 = {'a': 5, 'b': 7, 'c': 9, 'e': 3}
d2 = {'c': 9, 'a': 5, 'b': 7, 'e': 3}
x = d1 == d2
y = d1 != d2
print(x)
print(y)
输出:
True
False
字典类似于集合。它们也没有任何按确定顺序排列的元素。
子集和超集的概念不适用于字典。因此,子集和超集运算符对其毫无意义。