2

したがって、クラスの一部として、txtファイルから特定の入力があります。基本的に、私が与えることができる入力文字列は次のようなものです

listy = ["Miko's Lounge", '41.2', '56.7', '99th Ave, NY', '3', '4', '5', '2']

この入力で行う必要があるのは、住所を削除し、リストの末尾にある数字をリスト内の独自のリストに入れることです。

["Miko's Lounge", '41.2', '56.7', ['3', '4', '5', '2'] ]

を使用してアドレスを削除できることはわかっていますlisty.pop(3)。ただし、文字列の末尾の数字は異なる場合があります。これらは星の評価を表しており、場所によっては星の評価が他の場所よりも多くなっています。関数のように、リスト内の特定のポイントからすべてのインデックスを削除できますslice()か?

私が試みてきたのは、関数を使用して for ループを使用することrangeですが、適切に機能していないようです (または、期待どおりに機能しません)。

listy = ['1', '2', '3', '4', '5']


for i in range( 2 , len(listy)-1 ):
    listy.pop(i)

print listy

私が出力として得ているもの:

['1', '2', '4']

次の行に沿って何かを取得しようとしているとき:

['1', '2']

なぜランダム'4'がそこにあるのですか?私はこの範囲のことを理解していません!単純な for ループで Java が恋しい -_-

4

4 に答える 4

12

これを簡単に行うには、リスト スライスを使用できます。

>>> listy[:3]+[listy[4:]]
["Miko's Lounge", '41.2', '56.7', ['3', '4', '5', '2']]
于 2012-10-02T02:02:44.093 に答える
0

List のドキュメントを既に読んでいるはずです: http://docs.python.org/tutorial/datastructures.html

ただし、探している構文も表示されません。

あなたが望むのは、一般的なコンテナメソッド「スライス」を置き換える2部構成のインデックス構文だと思います

Pythonがサブリストに対処する方法は

myListInstance[start:end] //<-- note the colon

詳しくは:

http://docs.python.org/tutorial/datastructures.html#the-del-statement

于 2012-10-02T02:12:29.970 に答える
0

それを試してください:

listy = ["Miko's Lounge", '41.2', '56.7', '99th Ave, NY', '3', '4', '5', '2']
l = listy[:3]
l.append(listy[4:])
l

あなたにあげる:

["Miko's Lounge", '41.2', '56.7', ['3', '4', '5', '2']]
于 2012-10-02T02:05:33.760 に答える
-1

まず、リストlistyには 5 つの要素があります。インデックス 2 要素を削除すると、4 つ残っており、len(listy) は 4 を返すため、listy[3] が削除されます。したがって、 があります[1,2,4]。結果がどのようになったかを理解していただければ幸いです。変更

for i in range(3):
    listy.pop(len(listy)-1)
print listy
于 2016-07-02T13:25:25.810 に答える