1

リストの各項目に文字列「lst」を連結するコードがあります。

    i = 0
    lim = len(lst)
    while i < lim:
        lst[i] = 'lst%s' % (lst[i])
        i += 1

これを行うより速い方法はありますか?

4

4 に答える 4

3

lstこれにより、元のオブジェクトが変更されます。

lst[:] = ['lst%s' % item for item in lst]

または、新しいスタイルの文字列フォーマットを使用します:

lst[:] = ['lst{}'.format(item) for item in lst]
于 2013-06-07T05:47:04.197 に答える
2

リスト内包スライス代入の使用:

lst[:] = ['lst' + x for x in lst]
于 2013-06-07T05:46:49.867 に答える
0

楽しい地図バージョン

>>> lst=['foo', 'bar', 'baz']
>>> map('lst'.__add__, lst)
['lstfoo', 'lstbar', 'lstbaz']

しかし、もっと深刻なことに、ジェネレーター式からスライスに割り当てることができます

>>> lst[:] = ('lst{}'.format(x) for x in lst)
>>> lst
['lstfoo', 'lstbar', 'lstbaz']
于 2013-06-07T05:52:32.443 に答える
0

地図版はこちら

lst = map(lambda x: 'lst%s' % x, lst)
于 2013-06-07T05:51:33.530 に答える