【问题描述】
将下面的字符串根据顿号分解成一个站名列表
“堰桥、锡北运河、西漳、天一、刘潭、庄前、民丰、无锡火车站、胜利门、三阳广场、南禅寺、谈渡桥、太湖广场、清名桥、人民医院、华清大桥、扬名、南湖家园、塘铁桥、金匮公园、市民中心、文化宫、江南大学、长广溪”
按下面的输入形式提示用户输入
利用列表生成式,进行统计:
①若用户输入的是汉字,则统计无锡地铁一号线带有该汉字的站名个数,并生成由这些站名组成的一个列表
②若输入的是数字,则统计无锡地铁一号线站名长度超过该数值的站名个数,并生成由这些站名组成的一个列表
【输入形式】
请输入一个汉字或数字
【输出形式】
【样例输入】
【样例输出】
无锡地铁一号线站点
[‘堰桥’, ‘锡北运河’, ‘西漳’, ‘天一’, ‘刘潭’, ‘庄前’, ‘民丰’, ‘无锡火车站’, ‘胜利门’, ‘三阳广场’, ‘南禅寺’, ‘谈渡桥’, ‘太湖广场’, ‘清名桥’, ‘人民医院’, ‘华清大桥’, ‘扬名’, ‘南湖家园’, ‘塘铁桥’, ‘金匮公园’, ‘市民中心’, ‘文化宫’, ‘江南大学’, ‘长广溪’]
请输入一个汉字或数字广
无锡地铁一号线带有广字的站名共有3个,它们是
[‘三阳广场’, ‘太湖广场’, ‘长广溪’]
或者
无锡地铁一号线站点
[‘堰桥’, ‘锡北运河’, ‘西漳’, ‘天一’, ‘刘潭’, ‘庄前’, ‘民丰’, ‘无锡火车站’, ‘胜利门’, ‘三阳广场’, ‘南禅寺’, ‘谈渡桥’, ‘太湖广场’, ‘清名桥’, ‘人民医院’, ‘华清大桥’, ‘扬名’, ‘南湖家园’, ‘塘铁桥’, ‘金匮公园’, ‘市民中心’, ‘文化宫’, ‘江南大学’, ‘长广溪’]
请输入一个汉字或数字4
无锡地铁一号线站名超过4个字的共有1个,它们是
[‘无锡火车站’]
【python代码】
# 查找汉字的函数
def findHanzi(a,ch):
m = len(a)
for i in range(m):
if ch == a[i]:
return True
return False
s = "堰桥、锡北运河、西漳、天一、刘潭、庄前、民丰、无锡火车站、胜利门、三阳广场、南禅寺、谈渡桥、太湖广场、清名桥、人民医院、华清大桥、扬名、南湖家园、塘铁桥、金匮公园、市民中心、文化宫、江南大学、长广溪"
X = list(s.split('、'))
n1 = len(X)
list1 = [0 for i in range(n1)]
ch = input()
print("无锡一号线站点")
print(X)
k = 0
if ch>'0' and ch<'9':
n = int(ch)
for i in range(n1):
if len(X[i]) > n:
list1[k] = X[i]
k += 1
print("无锡地铁一号线站名超过{}个字的共有{}个,它们是".format(n,k))
print(list1[:k])
else:
for i in range(n1):
if findHanzi(X[i],ch):
list1[k] = X[i]
k += 1
print("无锡地铁一号线带有{}字的站名共有{}个,它们是".format(ch, k))
print(list1[:k])
【样例测试】
输入 广 字
输入数字 3