python复制到多个变量

时间:2016-01-14 18:24:54

标签: python

我迭代SQL的结果

for row in results:
    name = row[0]
    email = row[1]
    lastlogon = row[2]
    # do somthing with the parameters

该行有三个以上的元素。 有没有办法在一行中做到这一点:

for row in results:
    name, email, lastlogon = row
    # do somthing with the parameters

1 个答案:

答案 0 :(得分:1)

如果您希望您的行具有"可读"映射,您可以使用映射列表和函数zip映射结果。映射指定如何标记行中的第n个条目。

mapping = ['name', 'email', 'lastlogon', 'more_fields', 'again_more_fields', 'and_so_on']
for row in results:
   readable_row = dict(zip(mapping, row))
   print(readable_row)
   # will print something like {'name': '...', 'email': '...', ...}

通过这种方式,您可以将任意数量的项目映射到dict并使用它

if row['and_so_on'] == 'peter pan':
   do_some_funny_stuff()

作为猜测,我敢打赌,您正在使用的SQL框架还提供了一些方法来返回结果行作为dicts,并将其对应的字段名称作为键。您使用的是哪个框架?

此外,如果您想在变量中使用值,则可以对行进行切片。这允许您只分配前n个值。

name, email, lastlogon = row[0:3]