Python-从列表中删除列表

Python-从列表中删除列表,python,python-3.x,Python,Python 3.x,我有一个列表,我想从中删除一个列表,这样我就可以得到所需的答案 list = [["hello","son", 52],["welcome","home",65],["good","work",6]] name = input("Name: ") if name in list: del list[name] print("name + " deleted") else: print("invalid name") 如何删除列表以获得以下答案: list = [["he

我有一个列表,我想从中删除一个列表,这样我就可以得到所需的答案

list = [["hello","son", 52],["welcome","home",65],["good","work",6]]
name = input("Name: ")
if name in list:
    del list[name]
    print("name + " deleted")
else:
    print("invalid name")
如何删除列表以获得以下答案:

list = [["hello", "son", 52], ["good", "work", 6]]
然后添加新列表以获得此结果:

list = [["hello", "son", 52], ["good", "work", 6],["see","you","soon"]]

您需要遍历列表,因为用于计算条件的键位于子列表中

mylist = [["hello","son", 52],["welcome","home",65],["good","work",6]]
name = 'hello' # 'son' would also work
for i, sub_list in enumerate(mylist):
        if name in sub_list:
                del mylist[i]
                print(name + " deleted")
                break

print(mylist)

对于给定的示例,您希望为名称指定一组属性;我会考虑使用以名字为键的字典

我的建议是使用嵌套的while循环遍历列表!检查您要求的“名称”是否出现在列表的索引中,如果出现,请使用位置“[x[y]”弹出或删除它(取决于您希望如何处理旧/新列表。根据您的措辞,我有点不清楚)


希望有帮助!

用搜索中要使用的元素替换索引。(我假设index=1)


建议对此类数据使用字典。

而不是循环,为什么不使用lambda函数
filter()
?请查看:

>>> l = [["hello","son", 52],["welcome","home",65],["good","work",6]]
>>> name = "home"
>>> filter(lambda sub_list: name not in sub_list, l)
[['hello', 'son', 52], ['good', 'work', 6]]
>>>
有关
filter()
的更多信息。希望这对您有所帮助

编辑:

没有看到关于添加另一个列表以获得第二个答案的上一个问题。请尝试使用
append()
方法

>>> l = [["first", "list"]]
>>> m = ["second", "list"]
>>> l.append(m)
>>> l
[['first', 'list'], ['second', 'list']]
>>>

不要将列表用作变量名,它是一种类型。

您只需使用一个函数并使用两个参数,一个用于列表,另一个用于要删除的单词

list_1 = [["hello","son", 52],["welcome","home",65],["good","work",6]]

def deleting(list_1,del_name):
    for sub_list in list_1:
        if del_name in sub_list:
            list_1.remove(sub_list)
    return list_1
print(deleting(list_1,'hello'))
输出:

[['welcome', 'home', 65], ['good', 'work', 6]]
Enter name: hello
[['welcome', 'home', 65], ['good', 'work', 6]]
正如你所评论的:


如果我们使用name作为输入变量,比如name=input(“输入name:”)。title()是否可以删除列表中的一个列表以及与上面相同的输出

以下是更新的解决方案:

list_1 = [["hello","son", 52],["welcome","home",65],["good","work",6]]

def deleting(list_1):
    del_name=input("Enter name: ")
    for sub_list in list_1:
        if del_name in sub_list:
            list_1.remove(sub_list)
    return list_1
print(deleting(list_1))
输出:

[['welcome', 'home', 65], ['good', 'work', 6]]
Enter name: hello
[['welcome', 'home', 65], ['good', 'work', 6]]

如果要从列表列表中删除此索引列表,应通过for和while循环进行尝试:

Index=[1,4,6,9]
名单:

Coordinates=[[2,3,4,5],[6,7,8,9],[10,11,12,13],[14,15,16,17],[18,19,20,21],[22,23,24,25],[26,27,28,29],[30,31,32,33],[34,35,36,37],[38,39,40,41]]
产出将是:

Coordinates=[[2,3,4,5],[10,11,12,13],[14,15,16,17],[22,23,24,25],[30,31,32,33],[34,35,36,37]]
我使用以下代码: 在索引的第一个排序列表中:

sorted(Index)
while(len(Index)>0):
    del Coordinates[Index[0]]
    del Index[0]
    for i in range(len(Index)):
        Index[i]-=1
print(Coordinates)

name
应该是什么?希望name搜索列表并删除它所属的列表name=input(“输入name:”)#欢迎,如果可能的话,应该在列表中搜索name。如果我们使用name作为输入变量,比如name=input(“输入name:”)。title()是否可以删除列表中的列表以及与上述相同的输出?没有数据具有标题形式(例如:Hello)。因此,如果我们使用名称作为输入变量,例如名称=输入(“输入名称”)。title()是否可以删除列表中的列表以及与上面相同的输出?当然,让我给你一个例子。如果该列表是从csv文件读取的,该列表是全局的还是本地的?如果该列表来自csv文件,则只需传递到我上面创建的函数。但请记住,它应该具有相同的格式和嵌套的lists,如Dummy示例所示。如果我们使用name作为输入变量,如name=input(“输入name:”)。title()是否可以删除列表中的列表并获得与上面相同的输出。列表来自.csvfile@Jasd只要名称是字符串对象,它仍然可以工作。列表来自.csv文件。@Jasd您是否将.csv文件中的数据读取到脚本中的列表中?我不是我不知道这有什么关系。