在Python中合并来自不同URL的列表

时间:2017-11-21 22:54:06

标签: python list urllib

我希望在y轴上得到一个事件列表作为值,但有些事情我无法弄清楚。这是我到目前为止的代码。

eventurl = "http://data.hisparc.nl/show/source/eventtime/501/2017/1/"
for dag in range(1, 32):
    print(eventurl + str(dag))

    data = urllib.request.urlopen(eventurl + str(dag))
    data = data.read().decode()

    events = data.split("# bin\tvalue")
    nevents = [d.split("\t")[1] for d in events[1].strip().split("\n")]
    events_per_hour = list(map(int, nevents))
    print(events_per_hour)

当我运行此代码时,这是(部分)结果:

http://data.hisparc.nl/show/source/eventtime/501/2017/1/3
[2262, 2299, 2227, 2310, 2240, 2295, 2271, 2316, 2235, 2260, 2269, 2272, 2263, 2302, 2270, 2296, 2353, 2353, 2357, 2298, 2193, 2297, 2393, 2354] 
http://data.hisparc.nl/show/source/eventtime/501/2017/1/4
[2377, 2336, 2343, 2397, 2383, 2337, 2435, 2394, 2468, 2346, 2396, 2398, 2412, 2383, 2418, 2282, 2411, 2441, 2337, 2316, 2361, 2353, 2254, 2230]

我想合并列表(如果这些是列表),这样我就只有一个大的列表(如果这就是所谓的那些' s)所有的值,所以我可以全部使用它们作为我的图表的y轴的值。(像这样:

[2262, 2299, 2227, 2310, 2240, 2295, 2271, 2316, 2235, 2260, 2269, 2272, 2263, 2302, 2270, 2296, 2353, 2353, 2357, 2298, 2193, 2297, 2393, 2354, 2377, 2336, 2343, 2397, 2383, 2337, 2435, 2394, 2468, 2346, 2396, 2398, 2412, 2383, 2418, 2282, 2411, 2441, 2337, 2316, 2361, 2353, 2254, 2230]

如何轻松合并这些列表?

1 个答案:

答案 0 :(得分:0)

声明一个列表以保存所有数字:

data = []

在循环内部,请致电list.extend,在一次通话中将events_per_hour的每个元素添加到data

for dag in range(1, 32):
    ... 
    data.extend(events_per_hour)

最后,data将您的所有号码保存为单个列表。

<强>演示

In [1]: data = []

In [2]: for i in range(3):
   ...:     data.extend([1, 2, 3])
   ...:     

In [3]: data
Out[3]: [1, 2, 3, 1, 2, 3, 1, 2, 3]