我是Python新手。我正在尝试获取 NoneType 值的列表来创建子图(绘图库)。创建具有不同规格的子图需要以下设置:
fig = tools.make_subplots(rows=2, cols=3, specs=[ [{'colspan':3}, None, None],
map(lambda x: {}, ew) ],
shared_xaxes=False, shared_yaxes=False,
start_cell='top-left', print_grid=False)
因此,根据列表“ew”中的值,需要一个 Nonetype 值的列表。列表中的值可能会有所不同,Nonetypes 列表也应该有所不同。
解决方案:字符串列表,列表理解:
lst =', '.join([str(None) for ticker in ew])
问题:字符串 - 可以转换为 Nonetype 吗?
解决方案:Lambda 函数为 ew 中的每个值插入 None 。
map(lambda x: None, ew)
问题:列表的括号。无法摆脱它们。
我正在寻找的解决方案:
print(lst)
None, None
<type 'NoneType'>
这样:
fig = tools.make_subplots(rows=2, cols=3, specs=[ [{'colspan':3}, lst],
map(lambda x: {}, ew) ],
shared_xaxes=False, shared_yaxes=False,
start_cell='top-left', print_grid=False)
有没有办法获得这样的列表?或者比嵌入式功能更好的解决方案?
编辑 因为将以下“lst”插入图仍然存在错误:
lst = print(*map(lambda x: None, ew), sep= ', ') #returns None, None
print('{lst}'.format(**locals())) #returns only None
-> 这是一个可能的解释吗?
您可以先创建一个列表,然后再删除括号。
a = [None, None, None, None, None] # an example of a list you might want
并且您可以在不使用括号的情况下打印它,例如:
print str(a)[1:-1]
如果您使用的是 Python 3.x,即使包含 NoneType 数据,您也可以尝试打印不带括号的列表:
print (*lst, sep=', ') #lst = [None, None]
它应该输出:
None, None
如果您使用的是 Python 2.x,您也可以使用
from __future__ import print_function
来完成此操作
找到我的问题的答案: 首先用字典列出一个完整的列表。
tr = []
for ticker in ew:
if ew.index(ticker) ==0:
tr.append({'colspan': len(ew)})
else:
tr.append(None)
进入图:
fig = tools.make_subplots(rows=2, cols=3, specs=[ tr, map(lambda x: {},ew)],
shared_xaxes=False, shared_yaxes=False,
start_cell='top-left', print_grid=False)
欢迎更多Pythonic解决方案。