map容器
1.map容器类型及map类概述
map的本义是映射,就是可以将一个量映射到另一个量。
比如将一个字符串映射为一个数值,那么这个字符串就是map的键(key),那个值就是map的数据(value)。
因此,可以将map容器理解为一个快速查找数据结构的键。
对一个map元素进行访问的索引称为“键”。一个键可以是字符串、标量实数或整数。
map类的所有对象具有三种属性,只能通过map类的函数进行修改。
属性
说明
默认值
Count
uint64,表示map对象中key/value对的总数
0
KeyType
字符串,表示map对象中包括的key的类型
char
ValueType
字符串,表示map对象中包括的数据类型
any
2.创建map对象
map是一个map类中的对象,由MATLAB中名为“容器”的一个包来定义,可以通过构造函数来创建,举例如下:
星期一
星期二
星期三
星期四
星期五
数学
英语
历史
生物
地理
Python
>> schedule_map = containers.Map({'Monday','Teusday','Wednesday','Thursday','Friday'},{'Math','English','History','Biology','Geography'})
1
>>schedule_map=containers.Map({'Monday','Teusday','Wednesday','Thursday','Friday'},{'Math','English','History','Biology','Geography'})
运行结果如下:
Python
schedule_map =
Map (具有属性):
Count: 5
KeyType: char
ValueType: char
1
2
3
4
5
6
7
schedule_map=
Map(具有属性):
Count:5
KeyType:char
ValueType:char
创建一个空对象:
Python
>> New_map = containers.Map()
1
>>New_map=containers.Map()
3.查看/读取map对象
查看map对象:
map对象中,每个条目包含两部分:一个惟一的键及其对应的值。
可通过keys函数查看map对象中包含的所有键;values函数查看所有值。举例如下:
Python
>> keys(schedule_map)
>> values(schedule_map)
1
2
3
>>keys(schedule_map)
>>values(schedule_map)
结果如下:
Python
ans =
'Friday' 'Monday' 'Teusday' 'Thursday' 'Wednesday'
ans =
'Geography' 'Math' 'English' 'Biology' 'History'
1
2
3
4
5
6
7
ans=
'Friday''Monday''Teusday''Thursday''Wednesday'
ans=
'Geography''Math''English''Biology''History'
读取map对象
创建好map对象之后,用户便可以访问其数据。
当键名是一个字符串时,需用单引号将其括起来。举例如下:
Python
>> course = schedule_map('Wednesday')
course =
History
1
2
3
4
5
>>course=schedule_map('Wednesday')
course=
History
若访问多个键,则可使用values函数:
Python
>> values(schedule_map,{'Monday','Teusday'})
ans =
'Math' 'English'
1
2
3
4
5
>>values(schedule_map,{'Monday','Teusday'})
ans=
'Math''English'
注:在访问多个键时,不能利用“:”进行访问,因为冒号操作数必须为实际标量。
4.编辑map对象
删除keys/values对:
利用remove函数,其调用格式如下:
>> remove(‘mapName’,’keyName’)
举例:
Python
>> remove(schedule_map,'Monday')
>> keys(schedule_map)
>> values(schedule_map)
1
2
3
4
5
>>remove(schedule_map,'Monday')
>>keys(schedule_map)
>>values(schedule_map)
结果中显示原map对象中少了一项:
Python
ans =
Map (具有属性):
Count: 4
KeyType: char
ValueType: char
ans =
'Friday' 'Teusday' 'Thursday' 'Wednesday'
ans =
'Geography' 'English' 'Biology' 'History'
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
ans=
Map(具有属性):
Count:4
KeyType:char
ValueType:char
ans=
'Friday''Teusday''Thursday''Wednesday'
ans=
'Geography''English''Biology''History'
添加keys/values对
当用户向一个map对象中写入新元素的值时,需要提供键名,而且该键的类型必须和map中的其他键一致。该操作的调用格式是:
>> existingMapObj (newKeyName) = newValue;
举例如下:
Python
>> schedule_map('Saturday') = 'public elective course'
>> keys(schedule_map)
>> values(schedule_map)
1
2
3
4
5
>>schedule_map('Saturday')='public elective course'
>>keys(schedule_map)
>>values(schedule_map)
结果:
Python
schedule_map =
Map (具有属性):
Count: 5
KeyType: char
ValueType: char
ans =
'Friday' 'Saturday' 'Teusday' 'Thursday' 'Wednesday'
ans =
'Geography' 'public elective course' 'English' 'Biology' 'History'
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
schedule_map=
Map(具有属性):
Count:5
KeyType:char
ValueType:char
ans=
'Friday''Saturday''Teusday''Thursday''Wednesday'
ans=
'Geography''public elective course''English''Biology''History'
修改keys
若要在保持键名不变的情况下修改键的名称,则需要先删去键名和对应值,然后再重新添加。
修改values
同“添加keys/values对”
赞赏作者
喜欢 (1)or分享 (0)