我正在获取一个文本文件,导入并将其转换为字符串列表。然后我试图把一个独特的单词写进一把钥匙。我希望它们是不可变的或元组。我遇到的问题是这个词总是分成字符。我找到了similar post here但没有效果。
如果有人可以帮助我并解释我哪里出错了,为什么tuple(word)
会产生与tuple(word,)
相同的结果。
with open(f, 'r') as f:
clean_str = f.read().translate(None, string.punctuation).lower().split()
key_dic = {tuple(word,): [] for word in set(clean_str)}
return key_dic
档案说:猫追了狗。
两者的输出:
{('t', 'h', 'e'): [], ('c', 'a', 't'): [], ('c', 'h', 'a', 's', 'e', 'd'): [], ('d', 'o', 'g'): []}
答案 0 :(得分:0)
由于tuple
被用作函数,因此函数语法正在使用任何终止逗号而不是生成元组。
>>> tuple('foo')
('f', 'o', 'o')
>>> tuple('foo',)
('f', 'o', 'o')
>>> tuple(('foo',))
('foo',)
但您不需要调用tuple()
:
>>> {('foo',) : 'bar'}
{('foo',): 'bar'}