如何仅从 zip 中解压部分参数,而不是全部?
我的 SQL 查询:
select id,value,zvalue from axis
给我这样的结果:
ans=(1,23,34)(12,34,35)(31,67,45)(231,3412,234)
现在如果我想要所有这 3 个变量作为 3 个不同的列表
id, value, zvalue = zip(*ans)
但是如果我只想要 id
和 value
作为单独的列表。它会给我太多的值来解包错误。
id, value = zip(*ans)
有什么方法可以从 SQL 查询创建任意数量的列表。因为如果查询中有10个参数,我在使用ZIP时必须使用所有参数?
My SQL query:
select id,value,zvalue from axis
gives me result like this:
ans=(1,23,34)(12,34,35)(31,67,45)(231,3412,234)
now if I want all these 3 variables as 3 different lists
id, value, zvalue = zip(*ans)
But if I only want id
and value
as separate lists. It will give me too many values to unpack error.
id, value = zip(*ans)
Is there any way where I can create any number of lists from SQL query. Because if there are 10 parameters in the query, I have to use all the parameters while using ZIP?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
参数的数量必须匹配,这是Python 2中的规则。对于Python 3,您可以使用*来捕获到列表中。
常见的 pythonic (2.x) 解决方法是使用
_
来表示您不会使用的变量,即:正如 DSM 所评论的,对于 Python 3,您可以使用 * 来获取“剩余”参数:一个列表:
或者,最简单的,只需对 zip 的返回进行切片:
The number of arguments must match, this is a rule in Python 2. For Python 3, you can use * to capture into a list.
The common pythonic (2.x) workaround is to use
_
to denote variables you won't use, i.e.:As DSM commented, for Python 3, you can use * to grab "remaining" args as a list:
Or, simplest, just slice the return from zip:
如果您使用的是 Python 3,您可以使用它来解压 n 个附加元素:
If you are using Python 3 you can use this for unpacking n additional elements:
我想您可能正在寻找这样的东西:
第一个列表理解获取
ans
中所有元组的第一列,即id
列。第二个列表理解获取ans
中所有元组的第二列,即value
列。I think you might be looking for something like this:
The first list comprehension gets the first column in all tuples in
ans
, that is, theid
column. The second list comprehension gets the second column for all tuples inans
, that is, thevalue
column.