获取用户输入的一串电话号码,统计列表中给出的手机号号码段分别归属移动,联通,电信,虚拟运营商的数量值,以字典的形式输出四个运营商号码的统计结果
时间: 2024-12-25 19:30:21 浏览: 124
获取用户输入的一串电话号码并统计其归属的四大运营商(移动、联通、电信、虚拟运营商)的数量,可以按照以下步骤进行:
1. **数据预处理**:
- 验证每个输入的电话号码是否符合中国大陆常用的手机号码格式,通常包括11位数字,前三位代表运营商。
- 移动:13、14、15、17、18开头;
- 联通:130、131、132、155、156开头;
- 电信:133、134、153、189、180、181、182开头;
- 虚拟运营商:170、171、172等。
2. **统计计数**:
- 创建一个空的字典,键分别为"移动"、"联通"、"电信"和"虚拟运营商",值初始化为0。
- 遍历用户输入的电话号码列表,对每个号码检查所属运营商,并相应地增加对应的计数值。
3. **识别运营商**:
- 利用Python的字符串切片或正则表达式来匹配每个号码的前三位。
4. **更新字典**:
- 对于匹配成功的号码,更新对应运营商的计数。
5. **返回结果**:
- 最后返回整理好的包含各运营商号码数量的字典。
以下是Python示例代码:
```python
def count_phone_operators(phone_numbers):
operator_dict = {"移动": 0, "联通": 0, "电信": 0, "虚拟运营商": 0}
for number in phone_numbers:
if len(number) == 11 and number[:3] in ["13", "14", "15", "17", "18"]:
operator_dict["移动"] += 1
elif len(number) == 11 and number[:3] in ["130", "131", "132", "155", "156"]:
operator_dict["联通"] += 1
elif len(number) == 11 and (number[:3] in ["133", "134", "153", "189", "180", "181", "182"] or number[:4] in ["170", "171", "172"]):
operator_dict["电信"] += 1
else:
operator_dict["虚拟运营商"] += 1
return operator_dict
# 示例用户输入
phone_list = ['13912345678', '15556789012', '18988888888', '17000012345']
result = count_phone_operators(phone_list)
print(result)
```
阅读全文
相关推荐















