Task 02 - 部分学习内容解析与补充
Python基础练习:数据结构大汇总(第三天)
6.0. 集合
python中set(集合)与dict(字典)类似,也是一组key的集合,但不存储value。
由于key不能重复,所以,在set中,没有重复的key。(无序性的体现)
序号 | 操作语句 | 解析 |
---|---|---|
1 | set.update(set) | 用于修改当前集合,可以添加新的元素或集合到当前集合中,如果添加的元素在集合中已存在,则该元素只会出现一次,重复的会忽略。 |
2 | set.remove(item) | 用于移除集合中的指定元素。如果元素不存在,则会发生错误。 |
3 | set.discard(value) | 用于移除指定的集合元素。remove() 方法在移除一个不存在的元素时会发生错误,而 discard() 方法不会。 |
序号 | 操作语句 | 解析 |
---|---|---|
4 | set.intersection(set1, set2)以及set1 & set2 | 返回两个集合的交集 |
5 | set.intersection_update(set1, set2) | 交集,在原始的集合上移除不重叠的元素。 |
6 | set.union(set1, set2)以及set1 | set2 | 返回两个集合的并集。 |
序号 | 操作语句 | 解析 |
---|---|---|
7 | set.difference(set) 以及set1 - set2 | 返回集合的差集。 |
8 | set.difference_update(set) | 集合的差集,直接在原来的集合中移除元素,没有返回值。 |
9 | set.symmetric_difference(set)以及set1 ^ set2 | 返回集合的异或。 |
10 | set.symmetric_difference_update(set) | 移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中。 |
7.0. 序列
zip(iter1 [,iter2 […]])
用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象,这样做的好处是节约了不少的内存。
我们可以使用 list() 转换来输出列表。
如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。
a = [1, 2, 3]
b = [4, 5, 6]
c = [4, 5, 6, 7, 8]
zipped = zip(a, b)
print(zipped) # <zip object at 0x000000C5D89EDD88>
print(list(zipped)) # [(1, 4), (2, 5), (3, 6)]
zipped = zip(a, c)
print(list(zipped)) # [(1, 4), (2, 5), (3, 6)]
a1, a2 = zip(*zip(a, b))
print(list(a1)) # [1, 2, 3]
print(list(a2)) # [4, 5, 6]