Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中合并2个列表_Python_Merge - Fatal编程技术网

在Python中合并2个列表

在Python中合并2个列表,python,merge,Python,Merge,使用我当前的脚本 from lxml import html import requests from bs4 import BeautifulSoup import re import csv import itertools r = requests.get("http://www.mediamarkt.be/mcs/productlist/_128-tot-150-cm-51-tot-59-,98952,501091.html?langId=-17") soup = Beautifu

使用我当前的脚本

from lxml import html
import requests
from bs4 import BeautifulSoup
import re
import csv
import itertools


r = requests.get("http://www.mediamarkt.be/mcs/productlist/_128-tot-150-cm-51-tot-59-,98952,501091.html?langId=-17")

soup = BeautifulSoup((r.content),'lxml')

links = soup.find_all("h2")

g_data = soup.find_all("div", {"class": "price small"})

for item in g_data:
    prijs =[item.text.encode("utf-8") for item in g_data]

for link in links:
    if "TV" in link.text:
        product = [link.text.encode("utf-8").strip() for link in links if "TV" in link.text]

for item in itertools.chain(prijs + product):
    print item
我得到了一个列表,首先是所有的“Prij”,下面是所有的“产品”。 例如: 普里斯 普里斯 普里斯 产品 产品 产品

我想得到以下结果 普里斯 产品

普里斯 产品

普里斯 产品


谢谢

问题的本质似乎与您的实际代码没有什么关系,因此为了使这个问题对未来的读者有用,我将使用示例列表为您提供一个一般性的答案

不要连接两个列表。使用
zip
生成一个配对列表,然后展平结果

>>> lst1 = ['a1', 'a2', 'a3']
>>> lst2 = ['b1', 'b2', 'b3']
>>> [x for pair in zip(lst1, lst2) for x in pair]
['a1', 'b1', 'a2', 'b2', 'a3', 'b3']
使用
itertools.chain
,扁平化看起来更好一点

>>> list(chain.from_iterable(zip(lst1, lst2)))
['a1', 'b1', 'a2', 'b2', 'a3', 'b3']
或者,打开包装:

>>> list(chain(*zip(lst1, lst2)))
['a1', 'b1', 'a2', 'b2', 'a3', 'b3']
由于您使用的是Python 2,因此使用
itertools.izip
而不是
zip
(前者返回一个迭代器,后者返回一个列表),可以提高上述所有内容的内存效率