如何从 Python 循环中填充 2 个列卡

How to fill 2 column cards from Python loop

我试图遍历 Python 列表以填充 2 行居中的语义 UI 卡片,但不知道如何正确填充行中的第二张卡片。目前我的代码中有字符串“嘿”,但在此之前我有 'user' 但当然是两次获得同一个用户:/

     [![enter image description here][1]][1]<div class="ui two column centered grid">
        {% for user in users %}
          <div class="four column centered row">
            <!-- card 1 -->
            <div class="column"><div class="ui card">
              <div class="image">
                <img src="/static/images/matthew.png">
              </div>
              <div class="content">
                <a class="header" href="{{ url_for('show', id=user.id)}}">{{ user.first_name }}</a>
                <div class="meta">
                  <span class="date">Joined in 2013</span>
                </div>
                <div class="description">
                  {{ user.first_name }} is a surfer living in Aguadilla.
                </div>
              </div>
              <div class="extra content">
                <a>
                  <i class="user icon"></i>
                  22 Friends
                </a>
              </div>
            </div></div>
            <!-- card 2 -->
            <div class="column">hey</div>
          </div>
        {% endfor %}
      </div>

如果你有平面列表 [0, 1, 2, 3, ...] 而不是 [ [0,1], [2,3], ...] 那么你可以尝试使用切片 zip() 来转换它。

使用users[0::2]你甚至可以获得用户(0,2,4, ...),

使用users[1::2]你可以获得奇数用户(1,3,5, ...)

将它与 zip() 一起使用,您可以创建对 (0,1), (2,3), ...,您可以使用它来创建包含两张卡片的行。

for user1, user2 in zip(users[0::2], users[1::2]):
    # ... create card1 with user1 ...
    # ... create card2 with user2 ...

我不知道 zip() 是否可以在模板中使用,但最终您可以使用此方法创建列表 [ [0,1], [2,3], ...],然后再将其发送到模板。