根据每个项目的第一个字母打印字符串项的功能

时间:2012-09-25 15:04:00

标签: python string sorting

在Python中我试图创建一个函数,它将根据每个字符串项的第一个字母从字符串中打印项目。

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


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

我不太清楚如何制作它,以便根据您的字符串项列表,只打印以A-> L或L-> Z开头的项目。

我尝试使用lst[0][1]等添加更多if语句来检查每个项目,但不打印任何内容。

我还尝试创建一个语句,如:

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)

谢谢你们的帮助,非常感谢。

2 个答案:

答案 0 :(得分:0)

您可以使用list comprehension和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']

答案 1 :(得分: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')
  
    

苹果香蕉

  
相关问题