有人能帮忙写个简单的按名字首字母排序python程序吗?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有人能帮忙写个简单的按名字首字母排序python程序吗?相关的知识,希望对你有一定的参考价值。
就是输入几个人的名字,按照姓的字母顺序排列,如果姓相同,就按名的字首字母排列,下面这个是范例:
How many names do you want to enter? 5
Enter name #1: Bill Clinton
Enter name #2: Michael Jackson
Enter name #3: Tony Blair
Enter name #4: Janet Jackson
Enter name #5: Oprah Winfrey
The names in order are:
Blair, Tony
Clinton, Bill
Jackson, Janet
Jackson, Michael
Winfrey, Oprah
def sortName(list):
#保存名字和第一个字母的map
nameMap =
#保存第一个字母并稍后进行排序
nameList =[]
for i in list:
nameMap[i[0]] = i
nameList.append(i[0])
nameList.sort()
for i in nameList:
print(nameMap[i])
if __name__ == '__main__':
list = ['Michael jack','Bill Cliton','Tony']
sortName(list)
运行结果:
Bill Cliton
Michael jack
Tony
汗 ,还有第二个字母,没看清。。不过原理一样的,map中key保存两个字母,就行了
修改后
#--encoding:utf-8--
def sortName(list):
#保存名字和第一个字母的map
nameMap =
#保存第一个字母并稍后进行排序
nameList =[]
for i in list:
len = i.find(' ')
str = i[0]
if(len > 0):
str = i[0]+i[len+1]
print str
nameMap[str] = i
nameList.append(str)
nameList.sort()
for i in nameList:
print(nameMap[i])
if __name__ == '__main__':
list = ['Michael jack','Michael cack','Michael zack','Bill Cliton','Tony']
sortName(list)
结果:
Bill Cliton
Michael cack
Michael jack
Michael zack
Tony 参考技术B b=[ 'Bill Clinton','Michael Jackson','Tony Blair','Janet Jackson','Oprah Winfrey']
c=[i.split(' ') for i in b]
a=lambda x:(x[1][0],x[0][0])
c.sort(key=a)
for i in c:print(i[1],' ',i[0])
python: 怎样写一个函数把名字大写并变成下面这样?
参考技术A其实这个很简单的。这几个英文字母可以看做是“逐行扫描”打印出来的。第一次打印,会依次打印字符串CARTER的第一行,然后是第二行。
所以,可以设计一个字典来存储每个字母第一行到第六行的字符。如字母A:
dic ='A' : [
' * ',
' * * ',
' ******* ',
' * * ',
'* *',
]
然后循环6次打印各行即可。打印时将星号*替换为相应的字母。
望采纳,谢谢!
以上是关于有人能帮忙写个简单的按名字首字母排序python程序吗?的主要内容,如果未能解决你的问题,请参考以下文章