Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 地图的字符串表示_Python - Fatal编程技术网

Python 地图的字符串表示

Python 地图的字符串表示,python,Python,问题:如何以以下格式返回映射的字符串表示:{k1:v1,k2:v2,…,kN:vN}??基本上,我该如何定义“报告” 我会做什么:format={k1:v1,k2:v2,…,kN:vN} strForm=str(form) 打印(标准格式) 讲义: 地图是一个容器,用于在地图中存储数据记录集合 每个记录都与一个唯一的键相关联。关键部件 必须具有可比性Map():创建一个新的空映射。•长度(): 返回映射中键/值对的数目。•包含(键): 返回一个布尔值,指示给定的键是否在映射中。• setite

问题:如何以以下格式返回映射的字符串表示:{k1:v1,k2:v2,…,kN:vN}??基本上,我该如何定义“报告”

我会做什么:format={k1:v1,k2:v2,…,kN:vN} strForm=str(form) 打印(标准格式)

讲义:

  • 地图是一个容器,用于在地图中存储数据记录集合 每个记录都与一个唯一的键相关联。关键部件 必须具有可比性Map():创建一个新的空映射。•长度(): 返回映射中键/值对的数目。•包含(键): 返回一个布尔值,指示给定的键是否在映射中。• setitem(key,value):如果键 地图上没有。如果键位于地图中,则新值将替换 与键关联的原始值。•getitem(键):返回 与给定键关联的值,该值必须存在。•清除(): 通过删除所有键/值对来清除或清空映射键(): 返回包含存储在地图中的键的列表。•值(): 返回包含存储在映射中的值的列表。•toString(): 以以下格式返回映射的字符串表示形式: {k1:v1,k2:v2,…,kN:vN}
我的代码(经过测试并运行良好):


如果你真的想为自己发明字典之类的东西,我会用下面的方法编写
\uuuu repr\uuu
方法

"{%s}" % (", ".join(["%s:%s" % (k,v) for k, v in zip(self._key, self._value)]))

如果你真的想为自己发明字典之类的东西,我会用下面的方法编写
\uuuu repr\uuu
方法

"{%s}" % (", ".join(["%s:%s" % (k,v) for k, v in zip(self._key, self._value)]))

我将覆盖
\uuuu str\uuuu
\uuuu repr\uuuu
如下所示:

def __repr__(self):
    return '{%s}' % ', '.join(['{}:{}'.format(k, v) for k, v in zip(self._key, self._value)])

我将覆盖
\uuuu str\uuuu
\uuuu repr\uuuu
如下所示:

def __repr__(self):
    return '{%s}' % ', '.join(['{}:{}'.format(k, v) for k, v in zip(self._key, self._value)])


键应该是集合,而不是列表。map最大的好处是通过键快速找到元素。你是在问如何定义
\uu repr\uuu
?教授更喜欢使用list@user3467349是的,我不知道为什么不将集合对象子类化?键应该是集合,而不是列表。map最大的好处是通过键快速找到元素。你是在问如何定义
\uu repr\uuu
?教授更喜欢使用list@user3467349是的,我不知道你没有子类化collections对象的原因吗?我认为不需要这个
“{%s}”%
。@Marcin它是要添加
{
}
一般来说,
\uuuuu init\uuuuuuuuuuuuuuuuuuuuuuu
方法应该能够将
\uuuuuu repr\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
作为参数否?他最好对现有类进行子类化,比如
collections.mutablemapping
,然后编写一个
\uuuu init\uuuu
来满足他的需求。@halex我明白了。所以这很好。我可能想超越
\uuuuu str\uuuuuuu
而不是
\uuuuu repr\uuuuuu
,以实现
\uuuuu repr\uuu
返回适合实例化实例副本的表示的准则。或者,正如用户346739所说,创建一个子类并覆盖
\uuuuu init\uuuuu
以解析自定义
\uuuuu repr\uuuuu
。(我很清楚这条指导原则没有得到普遍遵守)。我认为这个
“{%s}”%
是不需要的。@Marcin添加
{
}
通常
\uuu init\uuuuuuuuuuuuuuuuuuu
方法应该能够将
\uuurepr\uuuuuuuuuu>作为参数否?他最好对现有类进行子类化,比如
collections.mutablemapping
,然后编写一个
\uuuu init\uuuu
来满足他的需求。@halex我明白了。所以这很好。我可能想超越
\uuuuu str\uuuuuuu
而不是
\uuuuu repr\uuuuuu
,以实现
\uuuuu repr\uuu
返回适合实例化实例副本的表示的准则。或者,正如用户346739所说,创建一个子类并覆盖
\uuuuu init\uuuuu
以解析自定义
\uuuuu repr\uuuuu
。(我很清楚,该指南并未得到普遍遵守)。