2 列表、字典及其基本操作

简介: 2 列表、字典及其基本操作

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. 思考题:列表与字典的区别是什么?


  1. 字典是key:value模式
  2. list单纯是value模式
  3. 字典key不能重复
  4. 列表中的每个元素都是有顺序的,每个元素都有自己的位置编号
  5. 可以通过切片从列表中提取多个元
  6. 列表是有序的,因此可以通过序号来提取;字典是无序的,因此只能通过唯一键来提取


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}


目录
相关文章
|
7月前
|
存储 程序员 Python
Python列表元组字典集合存储结构1
Python列表元组字典集合存储结构
40 0
|
8月前
|
存储 算法 C++
11.1 C++ STL 应用字典与列表
C++ STL 标准模板库提供了丰富的容器和算法,这些模板可以灵活组合使用,以满足不同场景下的需求。本章内容将对前面学习的知识进行总结,并重点讲解如何灵活使用STL中的vector和map容器,以及如何结合不同的算法进行组合。通过灵活组合使用这些容器和算法,能够满足不同场景下的需求,实现高效的数据处理和操作。STL的设计思想是将数据结构和算法进行分离,使得开发者能够更加专注于解决问题,提高了代码的可读性和可维护性。因此,掌握STL的使用技巧对于C++程序员来说是非常重要的。
56 0
|
6月前
|
Python
python之集合的创建与使用,遍历,集合常见的操作函数,集合与列表,元组,字典的嵌套
python之集合的创建与使用,遍历,集合常见的操作函数,集合与列表,元组,字典的嵌套
|
7月前
|
存储 数据处理 Python
标题:Python数据结构详解:列表、元组、字典和集合
标题:Python数据结构详解:列表、元组、字典和集合
|
7月前
|
存储 Python
Python列表元组字典集合存储结构 2
Python列表元组字典集合存储结构
38 0
|
7月前
|
存储 Python
Python字典和集合操作指南:创建、获取值、修改和删除键值对,复制和遍历方法全解析
Python字典和集合操作指南:创建、获取值、修改和删除键值对,复制和遍历方法全解析
342 0
|
10月前
|
存储 索引 Python
12.从入门到精通:Python字典,创建字典,访问字典的值,修改字典,删除字典,字典键的特性,字典内置函数和方法
12.从入门到精通:Python字典,创建字典,访问字典的值,修改字典,删除字典,字典键的特性,字典内置函数和方法
|
10月前
|
机器学习/深度学习 存储 索引
python数据结构 操作指南(列表、元组、字典、集合)
python数据结构 操作指南(列表、元组、字典、集合)
|
11月前
|
Python
Python 随机列表、集合、元组、字典的生成和排序
Python 随机列表、集合、元组、字典的生成和排序
98 0