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文件中的数据读取到脚本中的列表中?我不是我不知道这有什么关系。