python输入班级姓名_python,寻找班级里面名字最长的人

本文介绍了一种处理姓名列表的方法,包括按字母顺序排序姓名、筛选特定姓氏的人数及找出名字最长的人。通过Python编程实现了这些功能。

寻找班级里面名字最长的人 我有一串字符串人名:names=(' Kunpen Ji, Li XIAO, Caron Li,' ' Dongjian SHI, Ji ZHAO, Fia YUAN Y,' ' Wenxue DING, Xiu XU, Haiying WANG, Hai LIN,' ' Jey JIANG, Joson WANG E,' ' Aiyang ZHANG, Haiying MENG,' ' Jack ZHANG E, Chang Zhang, Coron ZHANG') ,我希望能做到下面3点: 问题1:排序,按照姓名A-Z排序 问题2:找出里面姓”ZHANG”有几个 问题3:找出名字里面最长的人

# !/usr/bin/env python

# -*- coding:utf-8 -*-

# Author:Hiuhung Wan

names = (' Kunpen Ji, Li XIAO, Caron Li,'

' Dongjian SHI, Ji ZHAO, Fia YUAN Y,'

' Wenxue DING, Xiu XU, Haiying WANG, Hai LIN,'

' Jey JIANG, Joson WANG E,'

' Aiyang ZHANG, Haiying MENG,'

' Jack ZHANG E, Chang Zhang, Coron ZHANG')

'''

问题1:排序,按照姓名A-Z排序

问题2:找出里面姓”ZHANG”有几个

问题3:找出名字里面最长的人 # 这里计算的是去掉空格后的。

'''

list_name = names.split(",")

for i in range(len(list_name)):

list_name[i] = list_name[i].lstrip() # 去掉左边的空格

list_name.sort()

print(list_name) # 问题1

list_temp = []

for i in list_name:

if "ZHANG" in i.upper():

list_temp.append(i)

print("姓'ZHANG'的有%s个,分别是:%s" % (len(list_temp), list_temp)) # 问题2

dict0 = {}

list_name_copy = list_name[:]

for i in range(len(list_name_copy)):

list_name_copy[i] = list_name_copy[i].replace(" ", "") # 去掉中间的空格

dict0[list_name_copy[i]] = len(list_name_copy[i]) # 以“姓名:长度”组成的字典

list_len = list(dict0.values()) # 所有的值,组成的列表

max_num = max(list_len) # 取最大值

#print(max_num) # 11

list_temp = []

for i in list_name:

j = i.replace(" ", "") # 去掉空格

if len(j) == max_num:

list_temp.append(i)

print("名字最长的有%s个,分别是:%s" % (len(list_temp), list_temp)) # 问题3

结果如下:

['Aiyang ZHANG', 'Caron Li', 'Chang Zhang', 'Coron ZHANG', 'Dongjian SHI', 'Fia YUAN Y', 'Hai LIN', 'Haiying MENG', 'Haiying WANG', 'Jack ZHANG E', 'Jey JIANG', 'Ji ZHAO', 'Joson WANG E', 'Kunpen Ji', 'Li XIAO', 'Wenxue DING', 'Xiu XU']

姓'ZHANG'的有4个,分别是:['Aiyang ZHANG', 'Chang Zhang', 'Coron ZHANG', 'Jack ZHANG E']

名字最长的有4个,分别是:['Aiyang ZHANG', 'Dongjian SHI', 'Haiying MENG', 'Haiying WANG']

Process finished with exit code 0

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值