我试图将我定义的集合转换为列表,以便我可以将其用于索引。从集合转换时的空列表
seen = set()
for line in p:
for word in line.split():
if word not in seen and not word.isdigit():
seen.add(word)
been = list(seen)
该集似乎包含项目就好了。但是,当我在变量资源管理器中监视其值时(以及后来调用索引函数时),该列表总是空的。
我在做什么错?
编辑:这是整个代码。我试图在'o'中的'p'中找到单词的位置,并将其出现次数记录在一行中。这是一个巨大的单词列表,因此手动输入任何内容都是不可能的。
p = open("p.txt", 'r')
o = open("o.txt", 'r')
t = open("t.txt", 'w')
lines = p.readlines()
vlines = o.readlines()
seen = set()
for line in p:
for word in line.split():
if word not in seen and not word.isdigit():
seen.add(word)
been = list(seen)
for i in lines:
thisline = i.split();
thisline[:] = [word for word in thisline if not word.isdigit()]
count = len(thisline)
j = []
j.append(count)
for sword in thisline:
num = thisline.count(sword)
#index=0
#for m in vlines:
#if word is not m:
#index+=1
ix = been.index(sword)
j.append(' ' + str(ix) + ':' + str(num))
j.append('\n')
for item in j:
t.write("%s" % item)
输出格式应该是'(行中项目总数)(index):(出现次数)'。 我觉得我非常接近,但这部分正在窃听我。
'been'应该是项目的列表在'看到'没有任何问题。您是否有缩进问题? – sberry
另外,只要尝试添加到集合中,即使它已经存在,在计算上也是非常便宜的,所以如果您愿意,您可以*删除“未见过的单词”和“如果”的一部分。 – sberry