A = [['a'],['a'],['b'],['c'],['b'],['a']]
B = [['k'],['k'],['a'],['b'],['k']]
我有两个列表,A和BI必须打印由列表A的空格分隔的元素索引号(索引号+ 1),这些元素也存在于列表B中。对于列表B的每个元素,我想打印索引列表A中的值在一行中顺序排列。如果列表B中有任何元素,列表A中缺少该元素,那么我想为此元素打印-1。如何解决此问题?
我的代码:
dict_B = dict([(b[0],[]) for b in B])
for i,a in enumerate(A):
if a[0] in dict_B:
dict_B[a[0]].append(i+1)
for key in dict_B:
if dict_B[key] == []:
c = 0
for i,x in enumerate(B):
if x == list(key):
c += 1
for x in range(c):
if x == c-1:
print(-1,end=" ")
else:
print(-1)
else:
for elem in dict_B[key]:
print(elem,end=' ')
print()
我的代码输出:
-1
-1
-1
1 2 6
3 5
预期产量:
-1
-1
1 2 6
3 5
-1
You can use
collections.defaultdict
here.输出: