Tôi có danh sách af của cấu trúc này được chuyển sang người mẫu với tên bars
bằng Python 3.4:Jinja vòng lặp trong danh sách lồng nhau tạo ra sản phẩm nào ra
[{'var': 1.18, 'occurrences': [0.0805, 0.0808, 0.0991, 0.0994, 0.2356], 'name': 'item name'},
{'var': 2.31, 'occurrences': [1.0859, 1.1121, 1.4826, 1.4829, 1.8126, 1.8791], 'name': 'other name'}]
Tôi muốn nó để tạo đầu ra sau đây cho mỗi từ điển:
% List with names
item 1: item name
item 2: other name
% List with vars
item 1: 1.18
item 2: 2.31
% List with occurences
item 1: 0.0805, 0.0808, 0.0991, 0.0994, 0.2356
item 2: 1.0859, 1.1121, 1.4826, 1.4829, 1.8126, 1.8791
Hai đầu tiên không có vấn đề gì, nhưng tôi không thể làm cho nó lặp lại danh sách xuất hiện. Tôi sử dụng mẫu jinja sau:
{% for item in bars %}
item {{ loop.index }}: {{ item.name }}
{% endfor %}
{% for item in bars %}
item {{ loop.index }}: {{ item.var }}
{% endfor %}
{% for item in bars recursive %}
{% if item.occurrences %}
Item {{ loop.index}}: {{ loop(item.occurrences) }}
{% else %}
No content
{% endif %}
{% endfor %}
này mang lại cho sản lượng này lẻ trong trường hợp thứ ba:
Item 1: No content
No content
No content
No content
No content
Item 2: No content
No content
No content
No content
No content
No content
Đó là số lẻ vì nó có vẻ rằng nó vòng từng hạng mục của danh sách với lần xuất hiện, nhưng nó không vượt qua bài kiểm tra cho nội dung. Tôi đang làm gì sai?
Chỉnh sửa: Tất cả ba câu trả lời đều chỉ cho tôi đúng hướng, nhưng @famousgarkin đưa ra câu trả lời phức tạp và linh hoạt nhất. Tôi đã kết thúc với giải pháp sau:
{% for item in bars %}
Item {{ loop.index }}: {% for occurrence in item.occurrences %} subitem {{ loop.index }}: {{ occurrence }} {% endfor %}
{% endfor %}
Điều này cho phép tôi kèm theo mỗi mục trong ngữ cảnh riêng, đó là những gì tôi muốn. Nhưng vì mục tiêu này không rõ ràng ngay từ đầu, tôi ước tôi có thể đưa ra tất cả các câu trả lời của bạn. Xin lỗi, nhưng cảm ơn tất cả các bạn đã giúp đỡ nhanh!
Nhưng sau đó tôi phải làm gì để làm cho nó lặp lại danh sách và in từng mục thay vì chỉ in toàn bộ danh sách? Nhân tiện, tôi hiểu lầm câu lệnh if, có ý định kiểm tra xem có xảy ra sự thật không, nhưng tôi thấy bây giờ nó đã sai. Tôi không cần điều đó. @vikki – Stenskjaer
@Stenskjaer vì 'lần xuất hiện' là danh sách, bạn có thể lặp lại lần nữa, xem chỉnh sửa của tôi. – vikki