在python中创建一个映射变量

时间:2014-07-15 11:23:05

标签: python

这是对我之前问题的一点延伸。我有一个名为region的变量,其值如下:

/health/blood pressure
/health/diabetes
/cmd/diagnosis
/fitness
/health
/health/type1 diabetes

现在我想再添加一个称为region_map的变量以及region变量,该变量将每个地区映射到唯一名称,例如Region1Region2,依此类推因为它们按顺序出现在列中。所以输出看起来像:

/health/blood pressure        Region1
/health/diabetes              Region2
/cmd/diagnosis                Region3
/fitness                      Region4
/health                       Region5
/health/type1 diabetes        Region6

此外,所有区域值都是唯一的。

基本上它是一个与网络相关的数据,但现在不是一个独立的任务。在python shell中,我导入的数据只包含唯一的区域列表。现在的第一个任务是删除整数值,这是我在其他成员的帮助下成功完成的。现在我有大约2000多个地区参赛作品。如上所述的样本数据,你可以看到它。对于后续分析,比如将其与其他文件合并,我想将映射变量添加到现有列,即区域。因此,对于每个独特的2000多个条目,我想要单独的映射变量,例如区域1,区域2,区域3,区域2000+。我创建了一个包含以下代码的字典:

mapping={region:index for index, region in enumerate(data.region)} 

但问题是如何遍历它并用区域1,区域2等替换现有值。基本上我解释说我想添加一个列,每个条目映射到不同的区域。希望这能很好地解释你!!

2 个答案:

答案 0 :(得分:0)

您可以使用dictionary,这样您就可以将键作为名称,将区域作为值。

你可以像这样使用它:

  

dict [key] = value

这将创建一个新密钥并为其指定一个值 您可以将这个键放在“/ health / blood pressure”中,然后输入像“Region 1”这样的值。 当你提到它时:

  

dict [“/ health / blood pressure”]

它将返回“区域1”。

要遍历字典,请执行以下操作:

for i in dictionary:
  # condition to see if you need to change the current value
  dictionary[i] = "New Value" # The I represents the key in the dictionary.

有关更多信息,请参阅python手册,因为这些只是使用字典的基本信息,如果您正在进行个人Web服务,我更倾向于使用数据库。但我再也不知道更大的图景,所以很难说。

答案 1 :(得分:0)

我假设您已经拥有了一个区域的数组列表,并且需要具有REGION和REGION MAP映射的新数组列表。

region = ["/health/blood pressure", "/health/diabetes", "/cmd/diagnosis" ,"/fitness", "/health", "/health/type1 diabetes"]

region_mapped = {}
region_count = len(region)
for region_index in range(0, region_count):
    region_mapped[region[region_index]] = "Region-%s" % region_index

print(region_mapped)

由于它可用于LIST - DICT无法追加/扩展元素。

因为你需要key:value pair类型的元素,所以上面的例子是最合适的。您仍然可以通过创建def来优化它。