获取 NoneType 值“None”的列表[重复]

问题描述 投票:0回答:3

我是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 列表也应该有所不同。

  1. 解决方案:字符串列表,列表理解:

    lst =', '.join([str(None) for ticker in ew])

    问题:字符串 - 可以转换为 Nonetype 吗?

  2. 解决方案: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 

-> 这是一个可能的解释吗?

python lambda plotly nonetype
3个回答
2
投票

您可以先创建一个列表,然后再删除括号。

a = [None, None, None, None, None]  # an example of a list you might want

并且您可以在不使用括号的情况下打印它,例如:

print str(a)[1:-1]

1
投票

如果您使用的是 Python 3.x,即使包含 NoneType 数据,您也可以尝试打印不带括号的列表:

print (*lst, sep=', ') #lst = [None, None]

它应该输出:

None, None

如果您使用的是 Python 2.x,您也可以使用

from __future__ import print_function

来完成此操作

0
投票

找到我的问题的答案: 首先用字典列出一个完整的列表。

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解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.