0

これは私が書いたコードです:

import sys
import string

def reverse(li):
    li=li[::-1]
    return li

a=raw_input("Enter first line ")
c=[]
c=a[0:2]
a=reverse(a)
b=[]
i=0
for i in range(0, len(a)):
    if(a[i]==' '):
        b=a[:i]
        b=reverse(b)
b.append(c) 
print b

エラーは次のとおりです:'str' object has no attribute 'append'オンラインb.append(c).

このエラーが忍び寄るのはなぜですか? どこが間違っていますか?

4

3 に答える 3

1

bその上の行で文字列に変換しています:

b=str(reverse(b))

したがって、は文字列になり、リスト用bのメソッドはサポートされません。.append()

于 2013-10-15T17:09:39.990 に答える
1

bこれは、次の行で文字列を作成するためです。

b=str(reverse(b))

そうすることで、リストが目立たなくなります。問題を解決するには、別の変数名を選択してください。

reverseまた、 Python には組み込み関数があるため、関数を作成する必要はありませんreversed

>>> a = [1, 2, 3]
>>> reversed(a)
<listreverseiterator object at 0x015AC6B0>
>>> list(reversed(a))
[3, 2, 1]
>>>
于 2013-10-15T17:09:54.867 に答える
0

Pythonstrオブジェクトにはメソッドがありませんが、オブジェクトにはメソッドappend()がありますlistappend()

あなたのコード では、b = [] 最初に b をリストとして定義しました

b=reverse(b) ただし、コード内のこのステートメントはbからlistに変換されますstr

strオブジェクト iebには がないためappend()、エラーが発生します

于 2013-10-15T17:48:01.980 に答える