Python论坛  - 讨论区

标题:求教一个小python程序

2012年04月25日 星期三 10:48

实现的功能如下:提示用户输入一个句子(英文,并且按enter键结尾),该程序将句子中的字母按ASCII码编码顺序重新排列,排列后的单词的长度要与原始句子中的长度相同,例如:输入: who is your daddy输出: add dh ioor suwyy 

这是我的实现#!/usr/bin/python

#-*-coding:utf8-*-

raw_str = raw_input("please input a string\n")
j = 0
char_list,int_list,last_char = [],[],[]
for i in raw_str:
    if i == ' ':
        int_list.append(j)
        j = 0
    else:
        char_list.append(i)
        j+=1
int_list.append(j)
char_list.sort()
for i in int_list:
    for j in range(0,i):
        last_char.append(char_list.pop(0)) 
    last_char.append(' ')
print ''.join(last_char)
但是觉得太臃肿了,求简洁解决方式

2012年05月04日 星期五 00:15

这个程序有啥具体的用途?

2012年05月04日 星期五 09:21

就是一个小练习,已经找到最佳答案了:

raw_str  = raw_input ( "please input a string\n" )
tmp_str = filter(lambda c:not c.isspace() ,sorted(raw_str,reverse=True))
new_str = ''.join( chr if chr.isspace() else tmp_str.pop() for chr in raw_str )

print new_str

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2024

    京ICP备05028076号