我试图用python编写一个语句来转换这个输入(例如):

[[3,4],[1],[1,2]]

在这个输出中:

 [3,4,-,1,-,1,2]

仅使用zip和列表理解

这是我的代码:

a = [[1,2],[1],[3,4]]
result = [j for i in zip(a,'-'*len(a)) for j in i]

print(result)

但我得到的只是:

[[1, 2], '-', [1], '-', [3, 4], '-']

我的输出应该是:

[1, 2, '-', 1, '-', 3, 4]

我错过了什么?

推荐答案

这应该是有效的:

a = [[1,2],[1],[3,4]]
result = [a for i in zip(a,'-'*len(a)) for j in i for a in j]
print(result)

输出:

[1, 2, '-', 1, '-', 3, 4, '-']

如果你不想把最后'-'个也包括在内,这也很有效:

a = [[1,2],[1],[3,4]]
result = [a for i in zip(a, '-'*len(a)) for j in i for a in j][:-1]
print(result)

输出:

[1, 2, '-', 1, '-', 3, 4]

Python相关问答推荐

如果在第一行之前不存在其他条件,如何获得满足口罩条件的第一行?

带有Postgres的Flask-Data在调用少量API后崩溃

来自ARIMA结果的模型方程

将numpy数组与空数组相加

在Docker中运行HAProxy时无法获得503服务

在两极中实施频率编码

Django注释:将时差转换为小数或小数

code _tkinter. Tcl错误:窗口路径名称错误.!按钮4"

为什么dict(id=1,**{id:2})有时会引发KeyMessage:id而不是TypMessage?

实现的差异取决于计算出的表达是直接返回还是首先存储在变量中然后返回

列表上值总和最多为K(以O(log n))的最大元素数

在Python中对分层父/子列表进行排序

使用numpy提取数据块

根据在同一数据框中的查找向数据框添加值

Pandas 有条件轮班操作

为什么sys.exit()不能与subproccess.run()或subprocess.call()一起使用

把一个pandas文件夹从juyter笔记本放到堆栈溢出问题中的最快方法?

计算天数

lityter不让我输入左边的方括号,'

Python全局变量递归得到不同的结果