【解決方法】x.remove(x によってリストから最後の項目を削除しようとするとなぜですか?[-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)

コメント

タイトルとURLをコピーしました