小编gyt*_*hon的帖子

如何将列表与嵌套列表连接在一起?

我有两个清单:

第一个是包含站点地图链接的常规列表:

ur = ['https://www.hi.de/hu/sitemap.xml', 
      'https://www.hi.de/ma/sitemap.xml', 
      'https://www.hi.de/au/sitemap.xml', 
      ]

Run Code Online (Sandbox Code Playgroud)

第二个列表是嵌套的,其中包含在站点地图上建立索引的链接以及每个链接的日期:

wh = [['No-Date', 'https://www.hi.de/hu/artikel/xxx', ''],        
      ['2019-11-13', 'https://www.hi.de/ma/artikel/xxx'], 
      ['2019-11-12', 'https://www.hi.de/ma/artikel/xxx'], 
      ['2019-11-11', 'https://www.hi.de/au/artikel/xxx']]
Run Code Online (Sandbox Code Playgroud)

现在,我想根据它们来自的位置图将列表与有色列表合并,如下所示:

ui = [['https://www.hi.de/hu/sitemap.xml', 'No-Date', 'https://www.hi.de/hu/artikel/xxx', ''],        
      ['https://www.hi.de/ma/sitemap.xml' '2019-11-13', 'https://www.hi.de/ma/artikel/xxx'], 
      ['https://www.hi.de/ma/sitemap.xml', '2019-11-12', 'https://www.hi.de/ma/artikel/xxx'], 
      ['https://www.hi.de/au/sitemap.xml', '2019-11-11', 'https://www.hi.de/au/artikel/xxx']]
Run Code Online (Sandbox Code Playgroud)

但是用我的代码:

ui = [[(url2, x) for url2 in ur for x in y if url2.rsplit('/', 1)[0] in x] for y in wh]
Run Code Online (Sandbox Code Playgroud)

每个子列表中的日期都将被删除,并且条目还存储在这样的元组中:

...
[[('https://www.hi.de/hu/sitemap.xml', 'https://www.hi.de/hu/artikel/xxx', '')],
...
Run Code Online (Sandbox Code Playgroud)

如何更改代码以在变量ui中获得所需的结果?

python

7
推荐指数
1
解决办法
262
查看次数

从动态网络表中抓取数据

我想从带有动态表的网页中抓取数据。该表包含有关乘坐火车的信息。

这是网站:https : //www.laerm-monitoring.de/zug/?mp=3/

我试图通过一个简单的挂载请求会话来请求数据,但我只得到了基本的 HTML 数据,而没有表格中的数据。

def requests_retry_session(
    retries=3,
    backoff_factor=0.3,
    status_forcelist=(500, 502, 504, 429),
    session=None,
):
    session = session or requests.Session()
    retry = Retry(
        total=retries,
        read=retries,
        connect=retries,
        backoff_factor=backoff_factor,
        status_forcelist=status_forcelist,
    )
    adapter = HTTPAdapter(max_retries=retry)
    session.mount('http://', adapter)
    session.mount('https://', adapter)
    return session 

session = requests_retry_session()
response = session.get('https://www.laerm-monitoring.de/zug/?mp=3/')
response.content
Run Code Online (Sandbox Code Playgroud)

我怎样才能正确地做到这一点?

python web-scraping python-requests

5
推荐指数
1
解决办法
176
查看次数

Scala 中的装饰者模式

我在 Scala 中有以下代码。我有几个关于功能和语法的问题。

type Logger = String => Unit

type Decorator = Logger => Logger

  val uppercase: Decorator = 
    logger =>
      (msg: String) => logger(msg.toUpperCase)

  val info: Decorator =
    logger =>
      (msg:String) => logger("info " + msg)
Run Code Online (Sandbox Code Playgroud)

我理解正确吗,那Decoratorìnfo函数的输入?

为什么这里不需要声明返回类型?

然后我使用这样的代码:

val prefixUppercase = info(uppercase(println(_)))
Run Code Online (Sandbox Code Playgroud)

为什么我可以通过println(_)uppercase

uppercase函数需要一个类型为 的参数Decorator,这println()显然不是。

另外,我使用println(_),但是当我尝试传递这样的命名参数时,println(x)我收到一个错误。

scala decorator

2
推荐指数
1
解决办法
144
查看次数

如何将输入数据结构保留在 for 循环中?

我有一个元组列表,如下所示:

l = [('xx-1711640.html', 'Hello'), 
     ('xx-8411747.html', 'Bye')
    ]
Run Code Online (Sandbox Code Playgroud)

实际的列表有数千个条目。现在我想对元组使用正则表达式。为此,我有一个 for 循环。另外,我希望输出也是元组列表。

我的代码:

ret = []
for line in l:
    for i in line:
        try:
            reg = re.sub(r'.+-', '', i)
            ret.append(reg)
        except:
            print(line)
Run Code Online (Sandbox Code Playgroud)

然而,使用这段代码,我的输出如下所示:

ret = ['1711640.html', 'Hello', '8411747.html', 'Bye']
Run Code Online (Sandbox Code Playgroud)

当我希望它看起来像这样时:

ret = [('1711640.html', 'Hello'), ('8411747.html', 'Bye')]
Run Code Online (Sandbox Code Playgroud)

我怎样才能正确地做到这一点?

python regex tuples list python-3.x

1
推荐指数
1
解决办法
54
查看次数