2012-09-25 45 views
1

在Python中,我試圖創建一個函數,該函數將根據每個字符串項目的第一個字母打印來自字符串的項目。基於每個項目的第一個字母打印字符串項目的函數

def foods(lst): 
    if lst[0][0] == 'A': 
     print(lst[0]) 


foods(['Apples', 'Bananas', 'Yogurt', 'Zucchini', 'Grapes']) 
Apples 

我不太知道如何使它所以,如果你想只打印項目開始A-> L或L->根據您的串項目列表Z上。

我試圖添加更多的if語句與lst[0][1]等檢查每個項目,但沒有什麼會打印。

我也嘗試創建一個語句:

if [x[0] for x in (lst)] == ['A', 'B', 'C']: 

,但沒有將打印爲好。

任何幫助將不勝感激,我希望我明白我的問題。謝謝。

基於你們的幫助和回顧以前的筆記,我發現了一個更「初學者的方式」來完成我想問的問題;

def foods(lst): 
     for char in lst: 
      if char[0] > 'N': 
       pass 
      else: 
       print(char) 

謝謝你們的幫助,非常感謝。

+0

給輸入的例子,所需的輸出,你的問題不清楚。 –

+0

對不起,我知道我缺少部分函數,​​如果lst [0] [0] <'L'然後打印(lst [0]),即使我知道你不能那樣做。所需的輸出是僅打印列表的字符串項目A-L。 – jwl4

回答

0

您可以使用列表理解和ord,要做到這一點:

[x for x in lst if ord('A') <= ord(x[0]) < ord('L')] 
       # check first letter is between A and L 


lst = foods(['Apples', 'Bananas', 'Yogurt', 'Zucchini', 'Grapes']) 
print [x for x in lst if ord(A) <= ord(x[0]) < ord(L)] 
# ['Apples', 'Bananas', 'Grapes'] 
0
def food(lst, start, end): 
    charLst = [chr(x) for x in range(ord('A'),ord('D'))] 
    if lst[0][0] in charLst: 
     print(lst[0]) 


foods(['Apples', 'Bananas', 'Yogurt', 'Zucchini', 'Grapes'], 'A', 'D') 

蘋果香蕉

相關問題