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]各項目に対してチェックするためにif ステートメントを etc でさらに追加しようとしましたが、何も印刷されませんでした。

また、次のようなステートメントを作成しようとしました。

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
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 に答える
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 に答える