我试图在一个小的本地测试中尝试实现的是迭代一个字符串数组,这些字符串基本上是父数组中的字符串数组。
我试图实现以下目标......
到目前为止,我已经尝试了以下方法,但我正在努力解决一个我不知道它来自哪里的错误...
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'不是任何给定测试数组中包含的字符串。
SAMPLE INPUT(文本文件中以逗号分隔的行,所以每行得到一个字符串数组):
[['a', 'b', 'c'], ['e', 'f', 'g'], ['b', 'q', 'a']]
示例输出:
[['a', 'b', 'c'], ['e', 'f', 'g'], ['q']]
答案 0 :(得分:2)
您可以使用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']]
答案 1 :(得分:1)
inputlist = [['a', 'b', 'c'], ['e', 'f', 'g'], ['b', 'q', 'a']]
scanned=[]
res=[]
for i in inputlist:
temp=[]
for j in i:
if j in scanned:
pass
else:
scanned.append(j)
temp.append(j)
res.append(temp)
[['a', 'b', 'c'], ['e', 'f', 'g'], ['q']]