Python: тактика понимания списка

Используйте код ниже. Я проверил & amp; проверено.

    textView.movementMethod = ScrollingMovementMethod() // Add this
    textView.text = "your text"
    textView.post {
        val scrollAmount = textView.layout.getLineTop(textView.lineCount) - textView.height
        textView.scrollTo(0, textView.lineCount)
    }

Редактировать: эквивалент Java:

    textView.setMovementMethod(new ScrollingMovementMethod());
    textView.setText("your text");
    textView.post(new Runnable() {
        @Override
        public void run() {
            int scrollAmount = textView.getLayout().getLineTop(textView.getLineCount()) - textView.getHeight();
            textView.scrollTo(0, scrollAmount);
        }
    });
8
задан hlovdal 26 December 2010 в 14:42
поделиться

2 ответа

Одна возможность:

>>> st = 'asdf'
>>> [st[:n+1] for n in range(len(st))]
['a', 'as', 'asd', 'asdf']
19
ответ дан 5 December 2019 в 05:00
поделиться

Если Вы собираетесь быть цикличным выполнением по элементам Вашего "списка", можно быть более обеспеченным использованием генератора, а не перечислить понимание:

>>> text = "I'm a little teapot."
>>> textgen = (text[:i + 1] for i in xrange(len(text)))
>>> textgen
<generator object <genexpr> at 0x0119BDA0>
>>> for item in textgen:
...     if re.search("t$", item):
...         print item
I'm a lit
I'm a litt
I'm a little t
I'm a little teapot
>>>

Этот код никогда не создает объект списка, ни делает он когда-либо (сборка "мусора" дельты) создает больше чем одну дополнительную строку (в дополнение к text).

17
ответ дан 5 December 2019 в 05:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: