这个程序做什么用的?

时间:2015-10-16 06:48:11

标签: python

这是一个简单的程序,但我发现它实际上是如何工作的困难。 我有{3}的 database

finish

这是整个计划, 现在

import matplotlib.pyplot as plt

queries = {}
rewrites = {}
urls = {}


for line in open("data.tsv"):
    q, r, u = line.strip().split("\t")

    queries.setdefault(q,0)
    queries[q] += 1
    rewrites.setdefault(r,0)
    rewrites[r] += 1
    urls.setdefault(u,0)
    urls[u] += 1

sQueries = []
sQueries = [x for x in rewrites.values()]
sQueries.sort()

x = range(len(sQueries))
line, = plt.plot(x, sQueries, '-' ,linewidth=2)
plt.show()

如果未找到键i,e和q,则此命令将值设置为0.

queries.setdefault(q,0)

如果有密钥,此命令将每个密钥的值增加1。 同样我们继续所有元组。 然后,

queries[q] += 1

然后我们将值从Dictionary重写存储到List Squeries

sQueries = [x for x in rewrites.values()]

这个命令我没有得到正在发生的事情。任何人都可以解释一下。

3 个答案:

答案 0 :(得分:3)

len(sQueries)

给出了列表中的元素数量sQueries

x = range(len(sQueries))

将创建一个列表x,其中包含从0,1,...到(但不包括)sQueries数组长度的元素

答案 1 :(得分:2)

length = len(sQueries)  # this is length of sQueries
r = range(length)  # this one means from 0 to length-1

所以

x = range(len(sQueries))  # means x is from 0 to sQueries length - 1

答案 2 :(得分:2)

此:

sQueries = []
sQueries = [x for x in rewrites.values()]
sQueries.sort()

是一种迟钝的写作方式

 sQueries = rewrites.values()
 sQueries = sorted(sQueries)

换句话说,对rewrites字典的进行排序。如果,为了论证,sQueries == [2, 3, 7, 9],然后len(sQueries) == 4range(4) == [0, 1, 2, 3]

所以,现在你正在密谋(0,2), (1,3), (2,7), (3,9),这对我来说似乎没什么用。您似乎更希望在x轴上使用rewrites,这将是您从TSV文件中读取的r的不同值。 / p>