Python 3.x 列表列表-删除字符

Python 3.x 列表列表-删除字符,python-3.x,Python 3.x,我有一个巨大的清单,比如 list = [["a", "bfgf", "c%2"], ["b", "hhj", "kkkk", "f%2"]] 我想删除列表列表中最后一项的%2结尾 我试过了 list = [[item[-1].replace('%2', '') for item in lst] for lst in list] 而且它不起作用您的方式不起作用,因为您没有在适当的位置更改值。您的语句只需获取每个子列表的副本,将其存储在lst中,然后更改该副本中的数据,而不是实际列表本身 这样

我有一个巨大的清单,比如

list = [["a", "bfgf", "c%2"], ["b", "hhj", "kkkk", "f%2"]]
我想删除列表列表中最后一项的%2结尾

我试过了

list = [[item[-1].replace('%2', '') for item in lst] for lst in list]

而且它不起作用

您的方式不起作用,因为您没有在适当的位置更改值。您的语句只需获取每个子列表的副本,将其存储在lst中,然后更改该副本中的数据,而不是实际列表本身

这样试一下,告诉我是否有效

myList= [["a","bfgf","c%2"],["b","hhj","kkkk","f%2"]]

for i in range(len(myList)):
    Last=myList[i].pop()
    Last=Last.replace("%2","")
    myList[i].append(Last)

print (myList)

对于嵌套列表,还可以使用嵌套列表理解来删除不需要的字符

ini_list = [["a", "bfgf", "c%2"],["b", "hhj", "kkkk", "f%2"]]
ini_list = [[val.replace('%2', '') for val in sublist] for sublist in ini_list]
print(ini_list)
# output
[['a', 'bfgf', 'c'], ['b', 'hhj', 'kkkk', 'f']]

我是一个编码初学者,所以我对某些部分感到困惑。如何在这个循环中引入子列表长度?@Susu我刚刚更改了答案中的代码。看一看。我有一个小的拼写错误(“子列表”应该是myList)。我的错!无论如何,看看这段代码,看看你是否能理解它。如果没有,我会解释。另外,在某个地方运行它,并提供不同的列表进行检查。@Susu如果您理解循环中的语句,您可以将所有3条语句组合成1条,作为
myList[i].append(myList[i].pop().replace(“%2”,”)
@Susu请将这两条答案中的任何一条标记为正确。谢谢您的帮助