8

私はPythonの初心者で、簡単な問題については助けが必要です。

私がする必要があるのは、3つのアイテムでリストを作成し、すべてのアイテムの前後にスペースを追加することです。

例:次のl1 = ['a', 'bb', 'c']
ように変換する必要があります:[' a ',' bb ',' c ']

私はこのようなものを書き込もうとしていました:

lst = ['a', 'bb', 'c']
for a in lst:
    print '  a  '

...他の要素についても同様ですが、構文エラーが発生します。誰かが私にこれを行うための実用的な方法を提案できますか?ありがとう。

4

7 に答える 7

13

いつものように、リスト内包表記を使用してください:

lst = [' {0} '.format(elem) for elem in lst]

これにより、各要素に文字列フォーマット操作が適用され、スペースが追加されます。Python 2.7以降を使用している場合は0、置換フィールド(中括弧)のを省略できます。

于 2012-10-15T09:25:49.573 に答える
6
[ ' {} '.format(x) for x in lst ]

Python 3.6以降の編集:

代わりにf-stringsを使用できます。ドキュメントを参照してください:https ://www.python.org/dev/peps/pep-0498/

上記の例は次のようになります。

[ f' {x} ' for x in lst ]
于 2012-10-15T09:25:57.643 に答える
2
lst = ['a', 'bb', 'c']  
lst = [' ' + x + ' ' for x in lst]
于 2012-10-15T09:45:08.623 に答える
1
In [44]: l1 = ['a', 'bb', 'c']

In [45]: [' %s '%x for x in l1]
Out[45]: [' a ', ' bb ', ' c ']
于 2012-10-15T09:26:23.497 に答える
1

最初にPythonコードをインデントしてください!その後:

lst = ['a', 'b', 'c']
lst2 = [' ' + a + ' ' for a in lst]
print lst2
于 2012-10-15T09:29:18.373 に答える
0

これを試して:

lst = [' ' + x + ' ' for x in ['a', 'bb', 'c']]
于 2012-10-15T09:25:59.323 に答える
0
>>> lst = ['a', 'bb', 'c']
>>> 
>>> [' {} '.format(x) for x in lst]
[' a ', ' bb ', ' c ']
>>> 
于 2012-10-15T09:27:12.977 に答える