list comprehension:为输入列表中的每个项创建2个项目?

jim*_*iat 2 python list-comprehension

我有一个列表如下:

list1 = ["pierre", "paul", "jacques"]
Run Code Online (Sandbox Code Playgroud)

我想创建一个包含6个项目的新列表:

list2 = ["pierre", "pierre#2","paul","paul#2", "jacques", "jacques#2"] 
Run Code Online (Sandbox Code Playgroud)

我尝试了以下方法:

list2 = [i, "{}#2".format(i) for i in list1 ]
Run Code Online (Sandbox Code Playgroud)

这显然不起作用.有人会有什么建议吗?

Mar*_*ers 6

您可以使用嵌套循环来执行此操作:

[item for i in list1 for item in (i, "{}#2".format(i))]
Run Code Online (Sandbox Code Playgroud)

for item in (...)内部循环产生每次2项.

  • @JoranBeasley:是的,没有. (2认同)