簡體   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