【问题标题】:How to do nested list each element to variable in pythonic way in efficient way如何以有效的方式以pythonic方式将每个元素嵌套列表到变量
【发布时间】:2019-04-06 17:20:42
【问题描述】:

这是我的嵌套列表

nlist =[[1,"https://w.org",{'delay':0},"segment"],[2,"https://w1.org",{'delay1':60},"segment2"],    [3,"https://w.org",{'delay2:120'},"segment1"]]

我想提取并执行一些操作,如下所示,如何以 pythonic 高效的方式为每个列表执行此操作。

number = 1
timedelay = delay
url    = https://w{}.format(timedelay).org  #is delay add 0 in the format or add 60 in place
segment = segment

示例:

 https://w0.org+'/'+number+segment # add 0 when delay 0
          https://w60.org+'/'+number+segment # add 60 when delay1 

请注意,根据字典添加密钥对值我可以重新排列 URL。

并对所有列表重复此操作。

  1. 要求是延迟是否在格式中添加 0 或在适当位置添加 60。这类似于选择键值对 { 'delay':0 'delay':60} 也可以放入在列表内部,可以使用单个 for 循环来读取列表并形成 URL 和其他变量赋值,还是应该在提取每个列表元素后仅在 if 循环中单独完成?

  2. 在这样的列表中 ["a" ,[b,c,d],ab] 如何访问 c 以及它的索引是什么。

【问题讨论】:

  • 预期输出是什么?
  • 预期输出加上所有变量并形成一个 URL,如果延迟添加类似 .../0/ 或 .../60/ 在基于延迟的 URL 中,延迟 1,延迟 2 此数据应该在列表中,如果它可以作为列表中的键值对字典就可以了。
  • 你能格式化问题正文中的预期输出吗?举几个例子?
  • 添加示例。如果我可以将键值对添加到列表中会很好。
  • 列表中的 3 项有错误:字典必须是 {'delay2':120} 而不是 {'delay2:120'}

标签: python pandas dictionary nested-lists


【解决方案1】:
for index, url_parts in enumerate(nlist):
    print("\n\nparam :\n", index, url_parts)

    url = url_parts[1] + '/' + str(url_parts[0]) + url_parts[3]
    # url_parts[2][next(iter(url_parts[2]))] -> get the first element of a dict
    url = url.replace('.org', str(url_parts[2][next(iter(url_parts[2]))])+'.org' )
    print("\nresult :\n", url)

【讨论】:

  • 感谢您提供简洁明了的代码,您能帮我在哪里获得有关此部分的详细参考 [next(iter(url_parts[2])) 以及这里的替换是什么?跨度>
  • 我想写 url_parts['delay'] 但在第二行我会写 url_parts['delay1'] 等...列表中的每一行。不要犹豫,打印你不清楚的东西。例如str(url_parts[2][next(iter(url_parts[2]))]) 第一行等于 0,第二行等于 60...
猜你喜欢
  • 1970-01-01
  • 2018-09-30
  • 2019-09-03
  • 2010-10-29
  • 2021-05-05
  • 1970-01-01
  • 2015-07-10
  • 1970-01-01
  • 2023-04-03
相关资源
最近更新 更多