适合python新手:集合与序列学习笔记

集合

对于python中集合的概念,需要与字典dict做对比,同样的,集合也是一组key的组成的,但是不像字典dict一样拥有key对应的value,而且key具有唯一性。(参考高中数学集合的概念识别)

常用点和盲区

创建空集合与空字典

空集合:s = set();
空字典:d = dict()
注:二者较为相似,但要注意其区别就在于value。

集合也具有和int,float,string同样的强制性,能够将其他数据类型强制转换。
如:集合能够把列表或元组转换成集合。

# 删除列表中重复的元素
lst = [0, 1, 2, 3, 4, 5, 5, 3, 1]

temp = []
for item in lst:
    if item not in temp:
        temp.append(item)

print(temp)  # [0, 1, 2, 3, 4, 5]

a = set(lst)
print(list(a))  # [0, 1, 2, 3, 4, 5]
注:此例子来源与阿里云天池训练营课程,简练又能说明问题,就不做修改了。

for循环和集合
集合中包含多个key,因此,在使用的时候,通常会结合for循环来使用:

s = set(['bob', 'robert', 'tony', 'lucy'])
for item in s:
    print(item)
# result:会依次打印出集合中的key。

**其他方法:
* set.add(element),实现给集合增添新的值,element则是所要添加的值,如果忘了原来集合里也没关系,不会对整体结果有影响(因为其操作不执行);
* set.update(set)用于修改当前集合,可以添加新的元素或集合到当前集合中,如果添加的元素在集合中已存在,则该元素只会出现一次,重复的会忽略;
* set.remove(item) 用于移除集合中的指定元素。如果元素不存在,则会发生错误;
* set.discard(value)用于移除指定的集合元素。
* remove() 方法在移除一个不存在的元素时会发生错误,而 `discard()方法不会。
**
还有一些数学计算集合的方法:

set.intersection(set1, set2)` 返回两个集合的交集;
set1 & set2返回两个集合的交集;
set.intersection_update(set1, set2)交集,在原始的集合上移除不重叠的元素;
set.union(set1, set2)返回两个集合的并集;
set1 | set2 返回两个集合的并集;
set.difference(set) 返回集合的差集。
set1 - set2返回集合的差集。
set.difference_update(set)集合的差集,直接在原来的集合中移除元素,没有返回值。

还有一系列数学集合计算的方法,着重理论研究的可以使用的时候多查看以下set的方法库

序列

序列其实际上就是字符串、列表、元组和集合、字典的统一体,任何一种类型都可以称之为序列,就算是对整体数据类型的一个小汇总吧。
具体可以参看往期写的笔记。
在序列中,最为实用的除了每一个数据类型的方法,强制转换是最为方便快捷的,而且python不需要提前定义变量类型,当你需要的时候就直接定义即可。

常用方法:
(1)max():返回序列或者参数集合中的最大值;
(2)min():返回序列或者参数集合中的最小值;
(3)sum(iterable, start = 0):返回序列iterable与可选参数start的总和;
(4)sorted(iterable, key=None, reverse=False)  对所有可迭代的对象进行排序操作。
     iterable -- 可迭代对象。
    key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
    reverse -- 排序规则,reverse = True降序 , reverse = False升序(默认)。
 (5)enumerate(sequence, [start=0]);用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。
 (6)zip(iter1 [,iter2 [...]])用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象,这样做的好处是节约了不少的内存。

分享总结

总的来说,python的数据类型,这里就暂且称作是序列吧,方法很丰富,但也没有必要每一种都掌握,最关键的还是要在需要的时候能够参看方法示例,一般在编译器中都可以设置查询,方便在实际编写代码的过程中使用。
敲黑板:每次博客的例行公事

至于今天所要交流的内容:
如何使用gempy制作三维地质模型,首先,数据要确保质量,若有必要,先对其做数据清洗,然后结合实际的野外工作和需求,最后才是选择较为适合的库进行开发,目前来说,gempy和VTK的配合还是具有较好的效果,有兴趣的可以尝试一下。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值