繁体   English   中英

如何在Python中组织大小写单词?

[英]How do I organize lower and upper case words in Python?

这是我的代码。

我需要做的就是确保列表的开头是大写单词,其次是小写单词。 我环顾四周,但.sort.sorted命令没有运气。

string = input("Please type in a string? ")

words = string.strip().split()
for word in words:
    print(word)
string = raw_input("Please type in a string? ")
words = string.strip().split()
words.sort()

关于如何将大写和小写单词分成单独的列:

string = raw_input("Please type in a string? ")
words = string.split()
column1 = []
column2 = []
for word in words:
    if word.islower():
        column1.append(word)
    else
        column2.append(word)

如果所有字母均为小写,则.islower()函数的计算结果为true。 如果这不适合您的问题的定义大小写一起工作,期待进入.isupper()和.istitle()方法在这里

sorted()函数应按字母顺序对项目进行排序,并考虑到上限。

>>> string = "Don't touch that, Zaphod Beeblebox!"
>>> words = string.split()
>>> print( sorted(words) )
['Beeblebox!', "Don't", 'Zaphod', 'that,', 'touch']

但是,如果出于某种原因, sorted()忽略了大写字母,那么您可以通过某种列表理解手动进行操作:

words = sorted([i for i in words if i[0].isupper()]) + sorted([i for i in words if i[0].islower()])

这将创建两个单独的列表,第一个使用大写单词,第二个不使用大写单词,然后分别对它们进行排序并将它们结合在一起以得到相同的结果。

但是最后,您绝对应该只使用sorted() ; 它更加高效和简洁。


编辑:对不起,我可能错过了你的问题的解释; 如果您只想组织大写字母而不是不按字母顺序排序,那么可以这样做:

>>> string = "ONE TWO one THREE two three FOUR"
>>> words = string.split()
>>> l = []
>>> print [i for i in [i if i[0].isupper() else l.append(i) for i in words] if i!=None]+l
['ONE', 'TWO', 'THREE', 'FOUR', 'one', 'two', 'three']

我找不到比这更有效的方法,所以就去了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM