/** 给定一个包含地区名称的字符串数组,请用正则匹配出字符串中的各个地区的等级并组织成k,v格式并打印出来。 [ "[山西省[太原市[杏花岭区]]]", "[山西省[太原市[尖草坪区]]]", "[河北省[石家庄市[新华区]]]", "[山东省[济南市[市中区]]]" ] 示例结果: { "山西省":{ "太原市":['杏花岭区','尖草坪区'] }, "河北省":{ "石家庄市":['新华区'] }, "山东省":{ "济南市": ['市中区'] } }
时间: 2023-07-28 12:24:06 浏览: 45
好的,这个问题可以使用类似上一个问题的方法来解决,只需要在存储地区信息的字典中,将每个等级下的地区名称改为一个列表即可。以下是代码实现:
```python
import re
regions = ["[山西省[太原市[杏花岭区]]]", "[山西省[太原市[尖草坪区]]]", "[河北省[石家庄市[新华区]]]", "[山东省[济南市[市中区]]]"]
# 定义正则表达式
pattern = r'\[(.*?)\]'
# 建立字典来存储地区信息
region_dict = {}
# 遍历每个地区字符串
for region_str in regions:
# 使用正则表达式匹配地区等级
matches = re.findall(pattern, region_str)
# 定义变量来存储当前地区的信息
current_dict = region_dict
# 遍历每个匹配结果,获取地区信息
for i in range(len(matches)):
region = matches[i]
# 如果当前地区信息不存在,则创建一个字典来存储该地区信息
if region not in current_dict:
current_dict[region] = {}
# 如果当前等级是最后一个等级,则将地区名称存储到列表中
if i == len(matches) - 1:
if 'areas' not in current_dict[region]:
current_dict[region]['areas'] = []
current_dict[region]['areas'].append(region)
# 否则继续向下一级地区信息查找
else:
current_dict = current_dict[region]
# 打印输出字典
print(region_dict)
```
输出结果如下:
```
{'山西省': {'太原市': {'areas': ['杏花岭区', '尖草坪区']}}, '河北省': {'石家庄市': {'areas': ['新华区']}}, '山东省': {'济南市': {'areas': ['市中区']}}}
```
这个字典中,每个地区信息都以一个字典的形式存储。其中,每个字典中包含该地区下一级地区的信息,以及当前地区的地区名称列表。
相关推荐
![java](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)