实战中程序要处理的数据都是一批一批的。可能从数据库读取,也可能从文件或者网络接口读取。但在处理前程序先要Hold住这些数据。这个时候就需要用到3个基本数据结构。程序员要熟练使用他们的常用方法(读取元素、遍历、添加、删除等)。
1.list
2.dictionary(map)
3.set
1 - List
python创建list很简单,把list的元素放在中括号中就可以了,用逗号隔开
odd_numbers = [1, 3, 5, 7, 9]
常用方法
** 读list中的某个元素 **
odd_numbers[0] // 1
odd_numbers[-1] // 倒数第一个是9
** 遍历list中的每一个元素 **
for oddNumber in odd_numbers:
print(oddNumber)
** 取子集 - slice **
list[start:stop:step]
odd_numbers[0, 3] //1, 3, 5
** 判断元素是否在list中 **
if 1 in odd_numbers:
print("1是奇数")
else:
print("1部署奇数")
if 2 not in odd_numbers:
print("2不是奇数")
** list中元素的个数 **
odd_len = len(odd_numbers)
** 往list中添加元素 **
odd_numbers.append(11)
odd_numbers.extend([13, 15, 19])
odd_numbers.insert(8, 17)
** 从list中删除元素 **
odd_numbers.remove(7)
odd_numbers.pop()
2 - Dictionary
list不是万能的,当我们需要存储键值对类型数据的时候需要用到Dictionary, Java中叫Map
常用方法
** 创建 **
花括号,键值对用逗号隔开,键和值用冒号隔开
person = {'name': 'John', 'gender': 'Male', 'Age': 36, 'company': '996'}
** 读某个键的值 **
person['name']
** 遍历所有的key **
for k in person:
print(k)
** 遍历键值对 **
for k, v in person.items():
print(k, '->', v)
** 添加键值对 **
person['发量'] = '稀少'
** 更新值 **
person['发量'] = '中等'
** 元素是否存在 **
if 'salary' not in person:
print("薪资信息保密,取不到")
** 设定默认值 **
person.setdefault('salary', 40000) //凭良心猜
3 - Set
Set和List相比最大的不同时元素不能重复
mvps2018 = {'Jack Lu', 'Jack You', 'Timothy', 'Vivian'}
** 合并Set, 并消除重复 **
mvps2019 = {'Tony', 'Jack You'}
mvpsAll = mvps2018.union(mvps2019) ** 两个Set之间不同的部分 **
mvpsDiff = mvps2018.difference(mvps2019) ** 两个Set之间重合的部分 **
mvpsIntersect = mvps2018.intersection(mvps2019) ```
4 - 最后再送一个 Tuples
就是List, 但是创建好之后,这个list就不允许修改. 改就报错
mvpsFinal = ('Jack Lu', 'Oliver')
小结
以上就是基本数据结构,不算复杂,但是可以组合起来搞复杂。例如在Dictionary的值也是Dictionary, List的元素也是List之类的。
网友评论