0

私は高校のコースのプログラムを作成していますが、私たちの教師は私たちのプログラムで何が許可されているかについて非常に具体的です。Python 2.x を使用しており、彼は if ステートメント、while ループ、関数、ブール値、およびリストのみを許可しています。文字列の反転を印刷し、数字を含まない同じ反転を再度印刷するプロジェクトに取り組んでいますが、それを理解できません。助けてください。私がこれまでに持っているのはこれです..

    def reverse_str(string):
    revstring =('')
        length=len(string)
        i = length - 1
        while i>=0:
            revstring = revstring + string[i]
            i = i - 1
        return revstring
    def strip_digits(string):
        l = [0,1,2,3,4,5,6,7,8,9]
        del (l)  rev_string


    string = raw_input("Enter a string->")
    new_str = rev_str(string)
    print new_str

「del」機能を正しく使用する方法がわかりません。リスト内のアイテムを逆文字列から削除するにはどうすればよいですか..ありがとう

4

3 に答える 3

1

一般に、次のようなタスクには2つのオプションがあります。

  1. リスト内のアイテムを繰り返し処理し、保持したくないアイテムを削除します。

  2. リスト内のアイテムを繰り返し処理し、保持したいアイテムを新しいリストにコピーします。新しいリストを返します。

さて、私は通常オプション(2)を好みますが、それはについてのあなたの特定の質問には役立ちませんdelxリストからインデックスにあるアイテムを削除するaには、次の構文で削除します。

del a[x]

これにより、インデックスを過ぎたすべての要素が左にシフトし、要素xを削除して左のギャップを埋めます。リスト内のすべてのアイテムを反復処理する場合は、このシフトを考慮に入れる必要があります。

于 2012-10-16T00:36:02.657 に答える
1

Python の型strは不変 (その場で変更できない) であり、delアイテムの削除機能をサポートしていません。

文字列の文字をリストにマップし、必要な要素を削除して文字列を再構築します。

また

数値を省略して、新しい要素を作成しながら文字列要素を反復処理します。

の正しい使い方delは次のとおりです。

>>> a = [1, 2, 3]
>>> del a[1]
>>> a
[1, 3]
于 2012-10-16T00:40:33.693 に答える
0

文字列を繰り返しコピーして、数字をコピーしないようにすることもできます...許可されていないことをすべて実行するためのPythonの方法を理解することも興味深いでしょう。どちらの方法も知っておくとよいでしょう。

于 2012-10-16T00:37:11.823 に答える