python - django 的循环问题

标签 python django loops

我正在从数据库中获取太多用户的数据,收集所有数据的数组每个用户有两行,只有最后一列值不同,其余值相同

r1 --> a , b , c , d , 1 (user1)
r2 -- > a , b , c , d , 2 (user1)
r3 --> z , x , v , n , 3 (user2)
r4 -- > z , x , v , n , 4 (user2)

现在我想创建一个数组,其中仅包含与每个用户对应的一行,但包含每个值,例如

r1 --> a , b , c , d , 1 , 2 (user1)
r2 -- >z , x , v , n , 3 , 4 (user2)

我尝试过 for 循环,但结果数组仅包含最后一条记录,我想要一个包含所有用户的所有记录的数组。

例如

cursor.execute("some query ")
    numrows = int(cursor.rowcount) 

让此 num rows 返回值 4。

然后

for I in range(numrows):

通过

会循环4次,但实际上它包含两个用户的值。

但是当我返回结果数组时,它仅包含最后一个用户的值。

所以请建议我某种方法,以便当我执行此操作时 for I in range(numrows): 它返回的数组包含所有记录,而不仅仅是最后一个用户记录

已编辑:

我也尝试过 while 循环

arr=[]
while arr in row:
   arr= row[0][1]

但是当我返回这个 arr 时,它是空的,但是如果我返回 row[0][1] 那么它会显示该列的值。

提前致谢。

最佳答案

假设您的数据按前 4 个条目排序(您可以在 SQL 中执行此操作),您可以使用以下代码转换数据:

from itertools import groupby
from operator import itemgetter

rows=[
    ('a' , 'b' , 'c' , 'd' , 1),
    ('a' , 'b' , 'c' , 'd' , 2),
    ('z' , 'x' , 'v' , 'n' , 3),
    ('z' , 'x' , 'v' , 'n' , 4)]



out = []
for key,group in groupby(rows, itemgetter(0,1,2,3)):
    new_row = list(key)
    for v in group:
        new_row.append(v[4])
    out.append(new_row)

print out

打印内容

[['a', 'b', 'c', 'd', 1, 2], ['z', 'x', 'v', 'n', 3, 4]]
<小时/>

这里有另一个想法:使用前 4 个条目作为字典中的键。

from collections import defaultdict

rows=[
    ('a' , 'b' , 'c' , 'd' , 1),
    ('a' , 'b' , 'c' , 'd' , 2),
    ('z' , 'x' , 'v' , 'n' , 3),
    ('z' , 'x' , 'v' , 'n' , 4)]



d = defaultdict(list)
for r in rows:
    d[tuple(r[0:4])].append(r[4])

print d[('a' , 'b' , 'c' , 'd')]
print d[('z' , 'x' , 'v' , 'n')]

打印

[1, 2]
[3, 4]

使用这种方法,行是否按前 4 列排序并不重要

关于python - django 的循环问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14765515/

相关文章:

python - celery 心跳不工作

Django模板继承: how many levels and what page to render

python - numpy 中的 "as of"

带有for循环的Java搜索数组找不到所有结果

python - 在 Pycharm 中使用 config 文件夹运行 Django 项目

python - 使用本地 JSON 文件填充 Django DB

python - 使用 Unicode 发送 HTML 邮件

javascript - 非法使用 break 语句; javascript

python - Pip 没有正确安装

python - 如何将 Excel 工作表另存为 CSV