将值附加到 python 中的两个键 defaultdict
Appending values to two key defaultdict in python
我试图从一个文本文件中追加一个后续值作为前两个值作为键的值。这是mt代码:
# this is a sample file. The output that I would like is ["apple","orange"]
lines = "This is apple. This is orange".split()
d = defaultdict(list)
d[("This", "is")] = list
for i, tokens in enumerate(lines):
if "This" == lines[i] and "is" == lines[i+1]:
d[(lines[i], lines[i+1])].append([lines[i+2]])
print d[("This", "is")]
但是我得到如下所示的错误:
TypeError: `append() takes exactly one argument (0 given)` on `d[(lines[i], lines[i+1])].append([lines[i+2]])`
有人可以帮忙吗?
以下行分配 list
类型本身,而不是 list
实例。
d[("This", "is")] = list
以上行应替换为:
d[("This", "is")] = list()
或
d[("This", "is")] = []
或者该行可以完全删除,因为如果字典中没有匹配的键,defaultdict
将处理这种情况。
我试图从一个文本文件中追加一个后续值作为前两个值作为键的值。这是mt代码:
# this is a sample file. The output that I would like is ["apple","orange"]
lines = "This is apple. This is orange".split()
d = defaultdict(list)
d[("This", "is")] = list
for i, tokens in enumerate(lines):
if "This" == lines[i] and "is" == lines[i+1]:
d[(lines[i], lines[i+1])].append([lines[i+2]])
print d[("This", "is")]
但是我得到如下所示的错误:
TypeError: `append() takes exactly one argument (0 given)` on `d[(lines[i], lines[i+1])].append([lines[i+2]])`
有人可以帮忙吗?
以下行分配 list
类型本身,而不是 list
实例。
d[("This", "is")] = list
以上行应替换为:
d[("This", "is")] = list()
或
d[("This", "is")] = []
或者该行可以完全删除,因为如果字典中没有匹配的键,defaultdict
将处理这种情况。