题解 | #数据分类处理#
数据分类处理
http://www.nowcoder.com/practice/9a763ed59c7243bd8ab706b2da52b7fd
思路:该题难点就是如何顺序输出,使用字典顺序依次记录出现的索引以及元素,然后进行组装即可
I = [i for i in input().strip().split(" ")][1:]
R = [int(r) for r in input().strip().split(" ")]
R = sorted(set(R[1:]))
d, result = {}, [] # 字典d的key为R中的元素, value为这个元素在I中出现时的数据
for r in R:
r_s, r_count = str(r), 0 # r_count为r_s在R中出现的次数,比如3在I中出现6次
for index, i in enumerate(I):
if r_s in i:
d[r_s] = d.get(r_s, [])
d[r_s].append((index, i)) # 记录出现的索引以及值
r_count += 1
if d.get(r_s): # value最后加上出现的总次数
d[r_s].append(r_count)
for k, v in d.items():
result.extend([k, v[-1]]) # v[-1]=r_count
for v_s in v[:-1]:
result.extend(v_s)
result.insert(0, len(result))
for i in result:
print(i, end=" ")