python - 将两个列表与字典键关联

标签 python html python-3.x

我试图将两个列表与同一个字典键相关联;然后在 html 表格中显示列表。我不知道我是否选择了错误的方法来存储列表,或者我是否搞乱了显示列表所需的 for 循环的配置。想知道是否有人可以提供帮助。

到目前为止我所拥有的:

我想要关联的内容:KeyA 两个列表:ListA 和 ListB。

存储:

listA = [1,2,3,4]
listB = [A,B]
keys = {}
lists = []
lists.append([ListA,ListB])
keys.setdefault(KeyA, []).append(lists) 

显示:

{% for option in keys %}
    <tr class = 'collapse level1' data-depth="1" >
        <td class ='site_device'> </td>
        <td class = 'site_device' > {{option}}</td>
        <td class ='site_device'></td>
        <td class ='site_device'></td>

        {% for list_holder in keys[option] %}
            {% for lists in list_holder %}
                {% for v1 in lists %}
                    <tr class = 'collapse level2' data-depth="2" >
                        <td class ='site_device'></td>
                        <td class ='site_device'></td>
                        <td class ='site_device'>{{ v1 }}</td>
                        <td class ='site_device'></td>
                    </tr>
                {% endfor %}
            {% endfor %}
        {% endfor %}
    </tr>
{% endfor %}

此方法给出:

<tr class = 'collapse level1' data-depth="1" >
    <td class ='site_device'> </td>
    <td class = 'site_device' > KeyA</td>
    <td class ='site_device'></td>
    <td class ='site_device'></td>
    <tr class = 'collapse level2' data-depth="2" >
        <td class ='site_device'></td>
        <td class ='site_device'></td>
        <td class ='site_device'>[1, 2, 3, 4]</td>
        <td class ='site_device'></td>
    </tr>
    <tr class = 'collapse level2' data-depth="2" >
        <td class ='site_device'></td>
        <td class ='site_device'></td>
        <td class ='site_device'>['A','B']</td>
        <td class ='site_device'></td>
    </tr>
</tr>

我的目标是:

<tr class = 'collapse level1' data-depth="1" >
    <td class ='site_device'> </td>
    <td class = 'site_device' > KeyA</td>
    <td class ='site_device'></td>
    <td class ='site_device'></td>
    <tr class = 'collapse level2' data-depth="2" >
        <td class ='site_device'></td>
        <td class ='site_device'></td>
        <td class ='site_device'> 1 </td>
        <td class ='site_device'> A </td>
    </tr>
    <tr class = 'collapse level2' data-depth="2" >
        <td class ='site_device'></td>
        <td class ='site_device'></td>
        <td class ='site_device'> 2 </td>
        <td class ='site_device'> B </td>
    </tr>
    <tr class = 'collapse level2' data-depth="2" >
        <td class ='site_device'></td>
        <td class ='site_device'></td>
        <td class ='site_device'> 3 </td>
        <td class ='site_device'></td>
    </tr>
    <tr class = 'collapse level2' data-depth="2" >
        <td class ='site_device'></td>
        <td class ='site_device'></td>
        <td class ='site_device'> 4 </td>
        <td class ='site_device'></td>
    </tr>
</tr>

最佳答案

我没有测试它,但你已经将列表嵌入了太深的一层。

所以,替换

lists.append([listA,listB]) 

lists.append(listA)
lists.append(listB)

还有别的东西,为什么用这个?:

keys.setdefault(KeyA, []).append(lists)

而不是

keys.setdefault(KeyA, lists)
# or even
keys['KeyA']=lists

这更具可读性。

对于另一个问题,一种可能性是循环如下:


{% for option in keys %}
    <tr class = 'collapse level1' data-depth="1" >
        <td class ='site_device'> </td>
        <td class = 'site_device' > {{option}}</td>
        <td class ='site_device'></td>
        <td class ='site_device'></td>
        {% for list_holder in keys[option] %}
            {% for i in range(list_holder[0]|length) %}
                    <tr class = 'collapse level2' data-depth="2" >
                        <td class ='site_device'></td>
                        <td class ='site_device'></td>
                        <td class ='site_device'>{{ list_holder[0][i] }}</td>
                        <td class ='site_device'>{{ list_holder[1][i] }}</td>
                    </tr>
            {% endfor %}
        {% endfor %}
    {% endfor %}

当然,由于两个列表的大小不同,因此会引发 IndexError(s)。因此,请确保两个列表具有相同的大小。

关于python - 将两个列表与字典键关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57604572/

相关文章:

python - 属性错误 : 'int' object has no attribute '_sa_instance_state'

python - 根据其他列值处理缺失值

html - 如何将 perl 的输出或错误 mysql 查询显示到同一网页?

java - 图像无法在外部 Web 浏览器 (Firefox) 中加载

python - 在循环定义的字典上使用 `==` 运算符

python - 如何生成没有过期的文件链接?

python - 时间这样写怎么写

jquery - 具有多个选择的语义 ui 下拉菜单在选择一个选项后不清除文本

arrays - 在python中将stdin行转换为 "float/int"数组的更简单方法

python - 如何在Python中使简单的股票价格模拟过程更加高效?