今天发现列表解析式真是一个神奇的东西

【原文】https://user.qzone.qq.com/2226038338/blog/1522123969

废话不多,直接说正事, 列表解析式真神奇。
有这样一个数据类型,列表嵌套元组
users = [('wangwu5''123'), ('zhaoliu5''123')]
us = [ ]
for user in users:
account,pwd = user
us.append(User(account=account,pwd=pwd))
本来我用了这种最常见的for循环来遍历他,取得每一项的值,生成模型类的实例来传给sqlalchemy引擎 写入数据库,实现后,我觉得这样写太普通,能不能写个高端大气上档次(装13)的写法呢?自然就想到了列表解析式这东西,这不写不要紧,一写就引发了一桩惊天大案。
来吧,列表解析式:
# us = [User(account=user[0], pwd=user[1]) for user in users]
试验了一下,果然可以,我python牛x!!!
不过,我上边可是带着#注释符的,这是干嘛呢,我又想到了另外一种装13的东西,生成器,没错就是他
us = (User(account=user[0], pwd=user[1]) for user in users)
拿过去一测试,我的天也可以,,再次高呼 python 666!
完了呢,我又开始不消停了,我想到了另一种方法,列表解析式能不能嵌套呢,我去试试看,这一试果不其然又让我猜中了:
# us = [User(account=account, pwd=pwd) for account, pwd in [user for user in users]] 
口号走起,人生苦短,我用python!!!
然而事情还没完,既然列表解析式能嵌套,那么生成器能不能嵌套呢?俺去试试看,。。。我只想说,我联想能力还是很强的(自吹一波)!
# us = (User(account=account, pwd=pwd) for account, pwd in (user for user in users))
我的个天,来吧,换个口号喊一波,人生几何,python当歌!!
嗯,原本觉得这样事情就算完了,但是呢,我突然有一个大胆的想法,既然生成器和列表解析式这么牛x,让他俩结合一下行不行呢!啊, 这次我不吹了,直接告诉你们,竟然也可以!
# us = [User(account=account, pwd=pwd) for account, pwd in (user for user in users)]
# us = (User(account=account, pwd=pwd) for account, pwd in [user for user in users])

嗯,我的个天,咱python不是吹,是真的牛x啊!最后把这几个写法全部罗列出来,python威武霸气!

遍历users,7种方法都可以

# us = [User(account=user[0], pwd=user[1]) for user in users]
us = (User(account=user[0], pwd=user[1]) for user in users)
# us = [User(account=account, pwd=pwd) for account, pwd in [user for user in users]]
# us = [User(account=account, pwd=pwd) for account, pwd in (user for user in users)]
# us = (User(account=account, pwd=pwd) for account, pwd in [user for user in users])
# us = (User(account=account, pwd=pwd) for account, pwd in (user for user in users))

# us = []
# for user in users:
# account,pwd = user
# us.append(User(account=account,pwd=pwd))
就是这么一个for循环,惹出一桩惊天血案!来吧,life is short , we need python!

你可能感兴趣的:(python)