关于list.remove
seen = 'A'graph = {
"A" : ["B", "C"],
"B" : ["A", "C", "D"],
"C" : ["A", "B", "D", "E"],
"D" : ["B", "C", "E", "F"],
"E" : ["C", "D"],
"F" : ["D"]
}
for i in graph:
print('')
for j in graph:
print(j, end = '')
if j in seen:
graph.remove(j)
小弟尝试以上代码希望将字典中所有的A去除然而结果却不尽人意,结果如下:
BC
AD
ADE
BCEF
CD
D
不知道这是这么回事,希望大佬解决一下{:10_254:} {:10_254:}
因为你删除了列表中的元素但没删除 j,把代码改成这样:
seen = 'A'
graph = {
"A" : ["B", "C"],
"B" : ["A", "C", "D"],
"C" : ["A", "B", "D", "E"],
"D" : ["B", "C", "E", "F"],
"E" : ["C", "D"],
"F" : ["D"]
}
for i in graph:
for j in graph:
if j in seen:
graph.remove(j)
for value in graph.values():
for i in value:
print(i, end="")
print() 其实你的问题已经解决了,之所以打印出A是因为你在移除字符'A'之前先执行了print(j, end = ''),所以就原样打印了一遍每个列表的元素,你可以在最后print(graph)看看,已经没有'A'元素在里面了
页:
[1]