如何将一组字符串转换为python中类似[[string1,string2]]的列表?

如何将一组字符串转换为python中类似[[string1,string2]]的列表?,python,Python,我有多个字符串,它们总是由Beauty soup中的for循环生成 html的结构是: 最新事件新预计到达时间:2017-12-19 10:00 UTC 拖船 法国国旗 表达方式是: for ids in blockinfo.find_all('ul'): for li in ids.find_all('li'): print li.text.strip() 字符串的输出如下所示: string1 string2 string3 string4 s

我有多个字符串,它们总是由Beauty soup中的for循环生成

html的结构是:


  • 最新事件新预计到达时间:2017-12-19 10:00 UTC
  • 拖船
  • 法国国旗
表达方式是:

for ids in blockinfo.find_all('ul'):
    for li in ids.find_all('li'):
         print li.text.strip()
字符串的输出如下所示:

string1 
string2 
string3 
string4 
string5 
string6
我需要创建如下列表:

[[string1,string2],[string3,string4][string5,string6]]
有什么帮助吗?
感谢

如果您想按照
    元素对字符串进行分组,请将它们附加到在每个
      元素上的循环内创建的列表中,然后在每次完成包含的
    • 元素上的循环时将该列表附加到结果列表中:

      results = []
      for ids in blockinfo.find_all('ul'):
          elements = []
          for li in ids.find_all('li'):
               elements.append(li.text.strip())
          results.append(elements)
      
      您也可以对该内部循环使用列表理解:

      results = []
      for ids in blockinfo.find_all('ul'):
          results.append([
              li.text.strip() for li in ids.find_all('li')])
      
      将外部循环转换为列表也可以:

      results = [
          [li.text.strip() for li in ids.find_all('li')]
          for ids in blockinfo.find_all('ul')]
      
      所有三种变体产生相同的输出;从长远来看,选择最适合维护的。列表理解比
      var=[]快一点;对于在…:var.append(…)
      循环模式中

      后者的演示,使用一些模拟输入:

      >>> from bs4 import BeautifulSoup
      >>> blockinfo = BeautifulSoup('''
      ... <ul><li>string1</li><li>string2</li></ul>
      ... <ul><li>string3</li><li>string4</li></ul>
      ... <ul><li>string5</li><li>string6</li></ul>
      ... ''', 'lxml')
      >>> [
      ...     [li.text.strip() for li in ids.find_all('li')]
      ...     for ids in blockinfo.find_all('ul')]
      [['string1', 'string2'], ['string3', 'string4'], ['string5', 'string6']]
      

      假设这些字符串被分组为
      组,那么?@MartijnPieters是的,结构是这样的,如果您编辑您的问题以包含该结构,它会更有帮助。@MartijnPieters我不需要将字符串连接在一起。下面代码中的生成此输出:[[string1+string2,string3+string4,string5+string6]]不,它不生成此输出。如果您可以提供一些示例HTML结构,那么就可以更容易地确定您在哪里应用代码。
      [['Latest Event New ETA: 2017-12-19 10:00 UTC more'],
       ['Type Tug',
        'Flag France',
        'IMO 9217474',
        'MMSI 228058000',
        'Callsign FOUL',
        'Year Built –––'],
       ['Length 30 m',
        'Width 10 m',
        'Draught Avg 4.1 m / ...',
        'Speed Avg/Max 7.5 kn / 7.3 kn',
        'Deadweight 385 tons',
        'Gross Tonnage 456 tons']]