在Python中拆分句子

时间:2012-06-22 07:03:32

标签: python split

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

Python
Perl
and
are 
programming
languages

我希望分割输入,但大写单词会排在最前面。我正在考虑使用两个列表:一个是标题大小写,另一个是低级。我试图使用if语句将单词放在某个列表中。请提出一些建议!

由于

2 个答案:

答案 0 :(得分:4)

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

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
Perl
and
are
programming
languages

说明: Python中的排序函数是stable,这意味着如果元素具有相同的比较键,则相对于彼此保留元素的顺序。关键函数会将值True分配给大于或等于'a'的任何值(这是以小写字母开头的任何字符串),否则为FalseFalse小于True,因此任何大写都会移到前面,而不会更改大写或小写单词的顺序。

答案 1 :(得分:1)

如果是家庭作业,你应该给它一个标签“家庭作业”。无论如何,使用两个列表的想法并不坏。

  1. 将两个列表初始化为空列表。
  2. 使用字符串的.split()方法拆分输入句子以获取单词。
  3. 直接在for循环中使用拆分表达式来处理提取的单词。
  4. 如果word是字符串变量,则word[0]是其第一个字符。如果它小于或等于'Z',则它是大写单词,应附加到通缉名单。
  5. 使用'\n'.join(lst)从单词列表中获取多行字符串。