我的SQL查询:
select id,value,zvalue from axis
Run Code Online (Sandbox Code Playgroud)
给我这样的结果:
ans=(1,23,34)(12,34,35)(31,67,45)(231,3412,234)
Run Code Online (Sandbox Code Playgroud)
现在,如果我想将所有这3个变量作为3个不同的列表
id,value,zvalue=zip(*ans)
Run Code Online (Sandbox Code Playgroud)
它会给我3个单独的列表.但如果我只想将id和value作为单独的列表.它会给我很多值来解决错误.
id,value =zip(*ans)
Run Code Online (Sandbox Code Playgroud)
有什么方法我可以从SQL查询创建任意数量的列表.因为如果查询中有10个参数,我必须使用ZIP时使用所有参数??? 请帮忙
Mac*_*cke 14
参数的数量必须匹配,这是Python 2中的规则.对于Python 3,您可以使用*来捕获到列表中.
常见的pythonic(2.x)解决方法是_用来表示你不会使用的变量,即:
id,value,_ = zip(*ans) # only works for exactly three values
Run Code Online (Sandbox Code Playgroud)
正如DSM评论的那样,对于Python 3,您可以使用*来抓取"剩余"args作为列表:
id, value, *_ = zip(*ans) # _ will be a list of zero or more args
Run Code Online (Sandbox Code Playgroud)
或者,最简单的,只是从zip切片返回:
id,value = zip(*ans)[:2] # ignore all but first two values
Run Code Online (Sandbox Code Playgroud)