2024-04-26 00:09:17 发布
网友
我的清单如下:
list1 = ["pierre", "paul", "jacques"]
我想创建一个包含6个项目的新列表:
list2 = ["pierre", "pierre#2","paul","paul#2", "jacques", "jacques#2"]
我尝试了以下方法:
list2 = [i, "{}#2".format(i) for i in list1 ]
这显然不管用。有人能给我一个建议吗?你知道吗
可以使用嵌套循环执行此操作:
[item for i in list1 for item in (i, "{}#2".format(i))]
for item in (...)内部循环每次生成2个项。你知道吗
for item in (...)
也许我是唯一一个很难阅读嵌套列表理解的人,但我倾向于像瘟疫一样避开它们。在这种情况下,我可能会使用香草圈:
lst_out = [] for item in list1: lst_out.extend((item, '{}#2'.format(item)))
或者另一个选项是生成器函数:
def gen(list1): for item in list1: yield item yield '{}#2'.format(item)
这不是百分之百正确的。。。标准的嵌套列表扁平化习惯用法对我来说很容易识别,所以我已经用过一两次了。也许我只需要开始使用它们,这样它们就更直观了…
您仍然可以尝试(只是缺少一些括号来创建tuple然后“展平”元组:
tuple
list2 = [(i, "{}#2".format(i)) for i in list1] list2 = [x for y in list2 for x in y]
产生:
['pierre', 'pierre#2', 'paul', 'paul#2', 'jacques', 'jacques#2']
可以使用嵌套循环执行此操作:
for item in (...)
内部循环每次生成2个项。你知道吗也许我是唯一一个很难阅读嵌套列表理解的人,但我倾向于像瘟疫一样避开它们。在这种情况下,我可能会使用香草圈:
或者另一个选项是生成器函数:
这不是百分之百正确的。。。标准的嵌套列表扁平化习惯用法对我来说很容易识别,所以我已经用过一两次了。也许我只需要开始使用它们,这样它们就更直观了…
您仍然可以尝试(只是缺少一些括号来创建
tuple
然后“展平”元组:产生:
相关问题 更多 >
编程相关推荐