8

繰り返し発生する文字列と、それがどの行にあるかを示す数字が入力されるリストを作成しようとしています。文字列の数を示す数値は、int 変数から取得されます。

だから、このようなもの:

b = 5
a = range(2, b + 1)
c = []
c.append('Adi_' + str(a))

これにより、次のようなリストが作成されることを期待していました。

c = ['Adi_2', 'Adi_3', 'Adi_4', 'Adi_5']

代わりに、このようなリストを取得します

c = ['Adi_[2, 3, 4, 5]']

だから私はそれを新しい行に印刷しようとすると

for x in c:
    print"Welcome {0}".format(x)

この結果は次のとおりです。

Welcome Adi_[2, 3, 4, 5]

私が望む結果は次のとおりです。

Welcome Adi_2
Welcome Adi_3
Welcome Adi_4
Welcome Adi_5

誰かがアイデアを持っているなら、私はそれを感謝します.

4

4 に答える 4

12

あなたはほとんどそれを手に入れました:

for i in a:
    c.append('Adi_' + str(i))

最初の行は、リスト全体を文字列として変換してaいました。

リスト内包表記といくつかの文字列フォーマットを使用して、ループを取り除くことができることに注意してください。

c = ['Adi_%s' % s for s in a] 

また

c = ['Adi_{0}'.format(s) for s in a] #Python >= 2.6
于 2012-09-27T12:07:40.483 に答える
1

リスト内包表記の使用:

b = 5
a = range(2, b + 1)
c = ['Adi_'+str(i) for i in a]
for x in c:
    print"Welcome {0}".format(x)
于 2012-09-27T12:13:14.833 に答える
0

またはリスト内包表記として:

b = 5
a = range(2, b + 1)
c = ["Adi_" + str(i) for i in a]
于 2012-09-27T12:12:30.600 に答える