素材一:“广州:510000 深圳: 518000 佛山:528000 珠海: 519000 东莞: 523000” Q1:使用 findall 函数返回所有的地名。 Q2:使用 findall 函数返回所有的邮编。 Q3:使用 zip 函数将地名和邮编一一对应。
时间: 2024-10-09 22:06:01 浏览: 33
陈焕生:深入理解Oracle的并行执行(二)
首先,让我们理解这两个问题是在处理文本数据,其中包含城市名和对应的邮政编码。Python的正则表达式模块`re`可以帮助我们完成这个任务。
Q1:使用`findall`函数返回所有的地名,我们需要匹配所有以汉字开头的地名字符串。例如,我们可以查找以“广州”、“深圳”等开始的词:
```python
import re
text = "广州:510000 深圳: 518000 佛山:528000 珠海: 519000 东莞: 523000"
city_names = re.findall(r'\b(广州|深圳|佛山|珠海|东莞)\b', text)
print(city_names) # 输出:['广州', '深圳', '佛山', '珠海', '东莞']
```
Q2:同样使用`findall`,这次匹配数字,通常邮政编码由6位数字组成:
```python
postal_codes = re.findall(r'\d{6}', text)
print(postal_codes) # 输出:['510000', '518000', '528000', '519000', '523000']
```
Q3:使用`zip`函数将地名和邮编对应起来,需要先分别获取到两个列表:
```python
city_data = list(zip(city_names, postal_codes))
print(city_data) # 输出:[('广州', '510000'), ('深圳', '518000'), ('佛山', '528000'), ('珠海', '519000'), ('东莞', '523000')]
```
现在,城市名和邮编已经按照题目要求一一对应了。
阅读全文