python:数据结构笔记(阿里云天池训练营第二节课)
大多python初学者无法一眼识别其功能的笔记:
python常规数据结构
和大多数编程语言一样,数据结构是实现各项功能的基础,包括list、tuple、dictionary等,以下记一些初学者一眼无法准确识别的功能。
list:[ ]
1、stop:stop:step
week = [‘Monday’, ‘Tuesday’, ‘Wednesday’, ‘Thursday’, ‘Friday’]
print(week[1:4:2]) # [‘Tuesday’, ‘Thursday’]
print(week[:4:2]) # [‘Monday’, ‘Wednesday’]
print(week[1::2]) # [‘Tuesday’, ‘Thursday’]
print(week[::-1])
注:#后为输出结果
2、获取列表的元素
def takeSecond(elem):
return elem[1] # 获取列表的第二个元素
x = [(2, 2), (3, 4), (4, 1), (1, 3)]
x.sort(key=takeSecond)
print(x) # [(4, 1), (2, 2), (1, 3), (3, 4)]
x.sort(key=lambda a: a[0])
print(x) # [(1, 3), (2, 2), (3, 4), (4, 1)]
tupel:()
注:tuple在创建之后就不能被修改,但好处是可以“大杂烩”,如:
t = (1,100,23,55,‘hello world’) # type(t):tuple
1、更改和删除一个tupel
week = (‘Monday’, ‘Tuesday’, ‘Thursday’, ‘Friday’)
week = week[:2] + (‘Wednesday’,) + week[2:]
print(week) # (‘Monday’, ‘Tuesday’, ‘Wednesday’, ‘Thursday’, ‘Friday’)
2、解压tuple:
t = (1, 10.31, ‘python’)
(a, b, c) = t
print(a, b, c) # 1 10.31 python
字符串
在我看来,字符串是编程语言中最优美的一种数据结构,万般皆是腹中餐,无论你曾经是什么,只要在“”中,就只有一个名字——字符串。
文本挖掘中最常用到的功能:
u = “www.baidu.com.cn”
1、 使用默认分隔符
print(u.split()) # [‘www.baidu.com.cn’]
#2、以"."为分隔符
print((u.split(’.’))) # [‘www’, ‘baidu’, ‘com’, ‘cn’]
3、分割0次
print((u.split(".", 0))) # [‘www.baidu.com.cn’]
4、分割一次
print((u.split(".", 1))) # [‘www’, ‘baidu.com.cn’]
5、分割两次
print(u.split(".", 2)) # [‘www’, ‘baidu’, ‘com.cn’]
6、分割两次,并取序列为1的项
print((u.split(".", 2)[1])) # baidu
7、分割两次,并把分割后的三个部分保存到三个变量
u1, u2, u3 = u.split(".", 2)
print(u1) # www
print(u2) # baidu
print(u3) # com.cn
8、python字符串格式化符号
dictionary:{ }
数值、字符和元祖都能被哈希(因为他们是不可变类型),而列表、集合以及字典则不能被哈希(因为是可变类型)。
总结
python中数据结构的转换往往是非常方便的,在实际使用过程中,也时常需要转换数据结构,最简单的方式就是在保证结构完整性的同时直接转换,如:int to string,只需要对int加上str()即可
小体会分享:
一、在地质领域中,存在海量多元(源)异构的数据,通常用各种数据库进行管理,而在数据库管理过程中,数据结构的类型就是非常重要的一个环节,如:经纬度的数据类型就一定是浮点型,通常在使用过程中放在列表中,结合python的numpy & pandas进行处理。
二、深度学习的数据集操作,也多用以上各种数据结构,如:地质预测找矿模型的训练和建立,整体过程中,需要严格按照原始地质数据的格式和相关规范需求进行数据结构的设置,从而能够在深度学习框架tensorflow或者pytorch中使用。