1

在 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]etc 添加更多 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)

谢谢各位帮忙,不胜感激。

4

2 回答 2

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']
于 2012-09-25T15:07:29.517 回答
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')

苹果香蕉

于 2012-09-25T15:09:53.383 回答