Python中的分句

Python中的分句,python,split,Python,Split,请输入字符串:Python和Perl是编程语言 Python Perl and are programming languages 我想将输入拆分,但大写的单词放在顶部。我正在考虑使用两个列表:一个是标题大小写,另一个是较低的。我试图使用if语句将单词放在某个列表中。请提出一些想法 谢谢您的示例输出是错误的,因为它看起来是这样的: Perl Python and are languages programming 首先按大写字母排序将导致Perl高于Python,因为e是第一位的。此外,由

请输入字符串:Python和Perl是编程语言

Python
Perl
and
are 
programming
languages
我想将输入拆分,但大写的单词放在顶部。我正在考虑使用两个列表:一个是标题大小写,另一个是较低的。我试图使用if语句将单词放在某个列表中。请提出一些想法


谢谢

您的示例输出是错误的,因为它看起来是这样的:

Perl
Python
and
are
languages
programming
首先按大写字母排序将导致Perl高于Python,因为e是第一位的。此外,由于大写字母排在第一位,您只需执行以下操作即可

print "\n".join(sorted(a.split()))
以获得期望的结果

编辑:在重新阅读问题后,我提出了以下修复/输出:

print "\n".join(sorted(a.split(), key=lambda x: x >= 'a'))
输出:


说明:Python中的排序函数是,这意味着如果元素具有相同的比较键,则它们的顺序将相对保留。key函数将为大于或等于“a”的任何字符串赋值为True,该字符串是以小写字母开头的任何字符串,否则为False。False比True小,因此任何大写字母都被移到前面,而不改变大写或小写单词的顺序。

如果是家庭作业,你应该给它一个标记家庭作业。无论如何,使用两个列表的想法也不错

将两个列表初始化为空列表。 使用字符串的.Split方法拆分输入句子以获得单词。 直接在for循环中使用拆分表达式来处理提取的单词。 如果word是字符串变量,则word[0]是其第一个字符。如果它小于或等于“Z”,则它是大写的单词,应附加到通缉名单中。 使用“\n”.joinlst从单词列表中获取多行字符串。
但是这改变了单词的顺序。哦。。。我想我误解了这个问题。我将更正:P已修复。我的+1。这是一个不错的解决方案,尽管人们需要更多地思考它是如何工作的。此外,排序算法必须是稳定的,即保留具有相同密钥的项的顺序。当然:请注意,自2.2版开始,Python就保证了这一点,请参阅。@hochl:感谢您修复此错误+我认为对于很长的句子,使用两个列表可能比排序更快,但我还没有尝试过。
Python
Perl
and
are
programming
languages