1. 列表介绍
- 列表是Python中最常用的数据类型,列表中每个元素都有一个索引,起始索引为0
- 列表是一种有序集合,可以添加和删除其中的元素
2. 列表基本操作
#创建列表,用[]创建 a=['2020/12/1','2020/12/2','2020/12/5'] b=['股票','代码'] c=['688698','300894','003031'] d=['行业','市盈率'] e=[36.48,35.68,51.51] print(a) print(b) print(c) print(d) print(e)
['2020/12/1', '2020/12/2', '2020/12/5'] ['股票', '代码'] ['688698', '300894', '003031'] ['行业', '市盈率'] [36.48, 35.68, 51.51]
#取列表中的元素 print(a[-1]) #取列表中最后一个元素 print(a[:2]) #取列表前两个元素,索引为2的元素不包括 print(a[1:]) #取列表中索引为1的元素开始到后面所有的元素
2020/12/5 ['2020/12/1', '2020/12/2'] ['2020/12/2', '2020/12/5']
# 求列表长度 d=['688698', '300894', '003031'] print(len(d))
3
#添加新的元素 插入新的股票代码 #方法一:append添加(直接添加至最后一个位置) d.append('688063') print(d) #方法二:insert添加(指定位置插入元素) d.insert(1,'688062') #前一个参数是插入位置的索引,后一个参数是插入的元素 print(d) #方法三:扩展列表(添加多个值或者序列) ex=['002665','002074','000723'] d.extend(ex) print(d)
['688698', '300894', '003031', '688063'] ['688698', '688062', '300894', '003031', '688063'] ['688698', '688062', '300894', '003031', '688063', '002665', '002074', '000723']
#替换列表中的元素 a[1]=8 #把原来索引为1位置的元素替换成8 print(a)
['2020/12/1', 8, '2020/12/5']
#删除列表中的元素 a.remove(8) #remove函数删除 print(a) b.pop(1) #pop()进行删除,可选参数index删除指定位置的元素 默认为最后一个元素 print(b) del c #删除整个列表或指定元素或者列表切片,list删除后无法访问 print(c)
['2020/12/1', '2020/12/5'] ['股票'] --------------------------------------------------------------------------- NameError Traceback (most recent call last) <ipython-input-12-a37975f09db0> in <module> 5 print(b) 6 del c #删除整个列表或指定元素或者列表切片,list删除后无法访问 ----> 7 print(c) NameError: name 'c' is not defined
#变量列表数据 for i in a: print(i)
2020/12/1 2020/12/5
#列表的排序和反转操作 e=[36.48,51.51,35.68] print(sorted(e)) print(e) a.reverse() #列表的反转操作 print(a)
[35.68, 36.48, 51.51] [36.48, 51.51, 35.68] ['2020/12/5', '2020/12/1']
#比较两个列表是否一致 f=[35.68,36.48,51.51] print(e==f) print(a==f)
False False
3. Python字典
- 字典是Python中比较常用并且非常重要的基本数据类型,字典是无序用大括号{}来表示,字典中的元素用逗号(,)分隔
- 字典中存储的是按“key-value”即“键-值”对存放的,键和值之间用冒号(:)分隔
- 字典中的键(key)是不能重复出现的。
4. 字典创建
#第一种方式创建 a= {} #创建不同日期的股票对应价格 a['11月1日'] = 5.4 a['11月2日'] = 5.6 a['11月3日'] = 4.8 a['11月4日'] = 5.3 #第二种方式创建 #创建不同股票代码对应股票简称 b = { '688698': "伟创电气", '300894': "火星人", '003031': "中瓷电子", } print(a) print(b)
{'11月1日': 5.4, '11月2日': 5.6, '11月3日': 4.8, '11月4日': 5.3} {'688698': '伟创电气', '300894': '火星人', '003031': '中瓷电子'}
4.1 两支股票688698、000402每天的收盘价实例
我们知道,股票信息系统每天需要记录一支股票的各种信息。我们以记录688698、000402两支股票每天的收盘价为例
#第一种方式创建 SZ000402= {} #变量开头不能是数字,所以我们加上其所属深证交易所缩写SZ #创建不同日期的股票对应价格 SZ000402['11月1日'] = 5.4 SZ000402['11月2日'] = 5.6 SZ000402['11月3日'] = 4.8 SZ000402['11月4日'] = 5.3 #第二种方式创建 #创建不同股票代码对应股票简称 SH688698 = { '1月4日': 18.5, '1月5日': 18.61, '1月6日': 19.24, } print(SZ000402) print(SH688698)
{'11月1日': 5.4, '11月2日': 5.6, '11月3日': 4.8, '11月4日': 5.3} {'1月4日': 18.5, '1月5日': 18.61, '1月6日': 19.24}
#字典中元素个数 len(SZ000402)
4
#取得字典中所有日期(key值) print(SZ000402.keys()) #取得字典所有股票价格(value) print(SZ000402.values()) #取得字典的键值列表,常用于遍历字典中 print(SZ000402.items())
dict_keys(['11月1日', '11月2日', '11月3日', '11月4日']) dict_values([5.4, 5.6, 4.8, 5.3]) dict_items([('11月1日', 5.4), ('11月2日', 5.6), ('11月3日', 4.8), ('11月4日', 5.3)])
print(SZ000402['11月1日']) # 通过11月1日(key)取字典中的股票价格 SZ000402['11月1日'] = 5.8 # 修改11月1日(value)的股票价格 print(SZ000402)
5.4 {'11月1日': 5.8, '11月2日': 5.6, '11月3日': 4.8, '11月4日': 5.3}
#判断元素是否在字典中 print('11月1日' in SZ000402)
True
#查找字典中的元素 print(SZ000402.get('11月1日')) # 使用字典的get()方法查找,如果未找到就返回None,有则返回键对应的值。
5.8
#删除字典元素 SZ000402.pop('11月1日') # 删除键11月1日对应的值,返回值是被删除的值 SZ000402
# 字典的循环 for i in SZ000402: print(i, SZ000402[i]) # 循环的是字典的key,当字典很大时,效率比较高
for k,v in SZ000402.items(): print(k,v) # 输出的结果与上面的for循环输出的结果相同,字典很大时效率比较低
#清除字典中所有元素 SZ000402.clear()
print(SZ000402)
Task
1. 思考题:列表与字典的区别是什么?
- 字典是key:value模式
- list单纯是value模式
- 字典key不能重复
- 列表中的每个元素都是有顺序的,每个元素都有自己的位置编号
- 可以通过切片从列表中提取多个元
- 列表是有序的,因此可以通过序号来提取;字典是无序的,因此只能通过唯一键来提取
2. 删除列表的第三个元素和最后一个元素
# 方法一 list=['中国重工','山煤国际','天音控股','中联重科',300448,600622] list.pop(2) list.pop(-1) print(list)
['中国重工', '山煤国际', '中联重科', 300448]
# 方法二 list=['中国重工','山煤国际','天音控股','中联重科',300448,600622] list.remove('天音控股') list.remove(600622) print(list)
['中国重工', '山煤国际', '中联重科', 300448]
3.删除字典SZ000402键 ‘11月3日’
# 方法一 SZ000402.pop('11月3日') print(SZ000402)
{'11月1日': 5.8, '11月2日': 5.6, '11月4日': 5.3}
print(SZ000402)
{'11月1日': 5.4, '11月2日': 5.6, '11月3日': 4.8, '11月4日': 5.3}
# 方法二 del SZ000402['11月3日'] print(SZ000402)
{'11月1日': 5.4, '11月2日': 5.6, '11月4日': 5.3}