在 Django 中读取元组内的列表

Posted

技术标签:

【中文标题】在 Django 中读取元组内的列表【英文标题】:Reading a list inside a tuple in Django 【发布时间】:2015-04-21 22:12:15 【问题描述】:

我的问题是我想读取一个列表(带有 for 循环),它位于这样的元组中:

items = a, b, [1, 2, 3]

'a' 和 'b' 是我需要的其他数据。

现在为了阅读列表,我这样做了,但不起作用:

% for item in items.3 %
  item
% endfor %

所以我的问题是如何使用 for 循环读取元组内的列表?

感谢您的帮助。

【问题讨论】:

我删除了erlang标签,因为没有引用Erlang编程语言。 【参考方案1】:

我刚刚删除了部分代码并重新开始。 额外提示:如果元组中的列表是元组列表,并且您想读取元组的一部分。您必须使用新的 for 循环来读取它。

例如,我有这个:

items = a, b, [1, 2, 3, 4, 5, 6]

现在从元组中获取列表:

% for item in items.3 %
    item
% endfor %

现在从列表中的元组中获取一些东西

我尝试这样做但它不起作用,如果有人知道如何解决这个问题,请添加评论:

% for item in items %
    item.1
% endfor %

这是我完成它的诀窍:

% for item in items %
    % for i in item %
        i
    % endfor %
% endfor %

要获取最外层循环的计数器,请查看此帖子: how-to-access-outermost-forloop-counter-with-nested-for-loops-in-django-template

谢谢

【讨论】:

【参考方案2】:

列表/元组中的 Python 索引从零开始。所以你应该使用索引2:

% for item in items.2 %
   item 
% endfor %

顺便说一句,元组是用圆括号定义的,而不是花括号:

items = (a, b, [1, 2, 3])

【讨论】:

它没有用。如果我输入 items.0,我会收到错误。即使在 django 中,我也会得到大括号。我想是因为我在底层代码中使用 Erlang。 python 中的花括号是定义set 的快捷方式。 Python 集没有被索引,所以1, 2, 3[0] 会引发错误。当然,元组 (1, 2, 3)[0] 可以正常工作。 我破案了。但我不知道问题是什么。我删除了那部分代码的所有内容并重新开始。现在它工作正常。感谢您的帮助。

以上是关于在 Django 中读取元组内的列表的主要内容,如果未能解决你的问题,请参考以下文章

我可以将新值分配/移动到元组内的 unique_ptr 中吗?

Python每日学习笔记之Tuple & range

Python每日学习笔记之Tuple & range

使用参数列表或元组在 pandas 中读取 SQL

从文本文件中读取列表元组作为元组,而不是字符串 - Python

在与整数配对的所有数字列表中的元组内创建一个列表[重复]