gpt4 book ai didi

python - 从列表列表中的列表中删除字符串

转载 作者:行者123 更新时间:2023-11-30 22:15:33 25 4
gpt4 key购买 nike

我试图在一个小型本地测试中实现的是迭代字符串数组,这些字符串基本上是父数组内的字符串数组。

我正在努力实现以下目标...

  • 1) 获取父数组中的第一个数组
  • 2) 获取列表的其余部分,而不是已被取走的部分
  • 3)迭代获取的数组,因此我获取每个字符串
  • 4)查找其余数组中的每个字符串
  • 5) 如果找到,将其从数组中删除

到目前为止,我已经尝试了以下方法,但我正在努力解决一个错误,我不知道它来自哪里......

lines = map(lambda l: str.replace(l, "\n", ""),
list(open("PATH", 'r')))

splitLines = map(lambda l: l.split(','), lines)

for line in splitLines:
for keyword in line:
print(list(splitLines).remove(keyword))

但是我收到以下错误...

ValueError: list.remove(x): x not in list

这不是真的,因为“x”不是任何给定测试数组中包含的字符串。

示例输入(文本文件中以逗号分隔行,因此每行得到一个字符串数组):

[['a', 'b', 'c'], ['e', 'f', 'g'], ['b', 'q', 'a']]

示例输出:

[['a', 'b', 'c'], ['e', 'f', 'g'], ['q']]

最佳答案

您可以使用 set 来跟踪以前见过的字符串以进行快速查找,并使用简单的列表理解来添加以前见过的 set 中未找到的元素。

prev = set()
final = []
for i in x:
final.append([j for j in i if j not in prev])
prev = prev.union(set(i))

print(final)

输出:

[['a', 'b', 'c'], ['e', 'f', 'g'], ['q']]

关于python - 从列表列表中的列表中删除字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50275181/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com