尝试使用切片:
inlinkDict[docid] = adoc[1:]
对于仅键值在线的情况,这将为您提供一个空列表,而不是0。要获得0,请使用
or(总是返回操作数之一):
inlinkDict[docid] = adoc[1:] or 0
dict理解更简单的方法:
>>> with open('/tmp/spam.txt') as f:... data = [line.split() for line in f]... >>> {d[0]: d[1:] for d in data}{'A': ['B', 'C', 'D'], 'C': ['A', 'B', 'D'], 'B': ['E', 'F'], 'D': []}>>> {d[0]: ' '.join(d[1:]) if d[1:] else 0 for d in data}{'A': 'B C D', 'C': 'A B D', 'B': 'E F', 'D': 0}注意:dict键必须是唯一的,因此,如果您有以’C’开头的两行,则第一行将被覆盖。



