[ad_1]
x.remove(x によってリストから最後の項目を削除しようとするとなぜですか?[-1]) リスト内の別の順序で別の項目を削除します。
インデックス -1 の要素 (最後の要素) ではなく、インデックス 2 の要素を削除するのはなぜですか。別のリストでこれを試してみると機能しますが、ここでは機能しません。理由がわかりません。 ?!
リスト内のすべての要素を文字列に変換しようとしました(一部の要素は整数であり、他の要素は文字列であるため)、おそらく機能しますが、機能しませんでした
私が試したこと:
x = [] for i in range(10): y = int(input("Enter your grade: ")) x.append(y) z = [] for n in range (len(x)): for index in range(len(x)): average = (x[n]+x[index])/2 if n == index: continue if average >= 0: if not(x[n] in z) and not(x[index] in z): z.append(x[n]) z.append (x[index]) z.append("---") if z[-1] == "---": z.remove(z[-1]) print (z) for team in z: print(team) ``` The result [1, 2, 3, 4, '---', 5, 6, '---', 7, 8, '---', 9, 10, '---'] 1 2 3 4 --- 5 6 --- 7 8 --- 9 10 --- desired result [1, 2, '---', 3, 4, '---', 5, 6, '---', 7, 8, '---', 9, 10] 1 2 --- 3 4 --- 5 6 --- 7 8 --- 9 10
<pre lang="Python"><pre lang="Python"><pre lang="Python">
解決策 1
の remove
メソッドは 最初 必要な値のインスタンスなので、次のような配列がある場合
[ 1, 2, "---", 3, 4, "---"]
次に、 remove の呼び出しに続いて取得します
[1, 2, 3, 4, "---"]
使いたかったのかもしれません pop
代わりは?
Python
if z[-1] == "---": z.pop(-1)
[ad_2]
コメント