簡體   English   中英

TypeError: 'type' object 不可下標。 我怎樣才能讓它從二維數組中刪除一個數組?

[英]TypeError: 'type' object is not subscriptable. How can I get this to remove an array from a 2d array?

我看過類似問題的答案,但我無法完成這項工作。 我對 python 很陌生。

def read():

    set = []
    f = open("error set 1.txt", "r")
    replace = f.read()
    f.close()

    f = open("Test1_Votes.txt", "w")
    replaced = replace.replace(",", "")
    f.write(replaced)
    f.close()



    f = open("Test1_Votes.txt", "r")
    for line in f:
        ballot = []


        for ch in line:

            vote = ch

            ballot.append(vote)

        print (ballot)

        set.append(ballot)


    """print(set)"""
    remove()

def remove():
    for i in range (70):
        x = i - 1
        check = set[x]
        if 1 not in check:
            set.remove[x]
    print(set)

錯誤是第 37 行,check = set[x] 我不確定究竟是什么導致了錯誤

remove function 中,您還沒有定義set 所以, python 認為是內置的 object set ,實際上是不可下標的。

將您的 object 傳遞給remove function,並且最好給它另一個名稱。

您刪除 function 無法“看到”您的設置變量(這是列表,避免使用保留字作為變量名),因為它不是公共的,它僅在讀取 function 內部定義。 在讀取 function 或將其作為輸入發送以刪除 function 之前定義此變量,它應該可以工作。

def read():
    set = []
    f = open("error set 1.txt", "r")
    replace = f.read()
    f.close()

    f = open("Test1_Votes.txt", "w")
    replaced = replace.replace(",", "")
    f.write(replaced)
    f.close()

    f = open("Test1_Votes.txt", "r")
    for line in f:
        ballot = []


    for ch in line:
        vote = ch
        ballot.append(vote)

    print (ballot)

    set.append(ballot)


    """print(set)"""
    remove(set)

def remove(set):
    for i in range (70):
        x = i - 1
        check = set[x]
        if 1 not in check:
            set.remove(x)
    print(set)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM