Мне тоже сложно понять, о чем говорится в цитате, так что было бы неплохо немного больше контекста. Но, перечитав его несколько раз, я понял, что это означает следующее:
# A list of words to work with. It didn't explicitly say that this existed but it seemed to imply it.
words = ["apple", "banana", "quince", "vanilla"]
# Then build the multidimensional list:
list_of_lists = []
for letter in "abdcefghijklmnopqrstuvwxyz":
firsts = len([1 for w in words if w[0] == letter])
# this is equivalent to
# l = []
# for w in words:
# if w[0] == letter:
# l.append(1)
# firsts = len(l)
# Although since the idea was to get it into one line, instead of appending to a list we would take the faster and cheaper rout of incrementing a counter like this:
# firsts = 0
# for w in words:
# if w[0] == letter:
# firsts += 1
lasts = len([1 for w in words if w[-1] == letter])
list_of_lists.append([letter, firsts, lasts, firsts + lasts])
# list_of_lists should now be something like this:
[['a', 1, 2, 3], ['b', 1, 0, 1] , ['c', 0, 0, 0]] # etc
Конечно, я могу ошибаться, но я так понимаю. Еще кое-что. Вместо того, чтобы делать w[0] == letter
и w[-1] == letter
, я думаю, вы могли бы сделать w.startswith(letter)
и w.endswith(letter)
. Это не имеет большого значения для одной буквы, но, конечно, проще, если вы проверяете строки из нескольких букв. startswith()
особенно полезно, например, для панелей поиска.