【问题标题】:Python: How to transform a tuple into a list?Python:如何将元组转换为列表?
【发布时间】:2016-03-18 02:30:08
【问题描述】:

以下代码获取一个元组并打印它:

 query="SELECT * FROM eventos WHERE id_evento=1;"
 cur.execute(query)
 fetch=str(cur.fetchall()).decode('unicode-escape')
 print fetch

打印出来的元组如下:

[(1, u'Produção, u'Produção, u'NULL, u'NULL')]

我想把那个元组改成这样:

 1,Produção,Produção,NULL,NULL

然后(或直接)到 this,这是一个数组,其中的元素是该元组的元素,例如:

list[1]= 1
list[2]= Produção
list[3]= Produção
list[4]= NULL
list[5]= NULL

这应该很简单,但我很难做到。 比你。

【问题讨论】:

  • L = list(fetch) 工作吗?
  • 不,它没有:/ 不过感谢您的建议。
  • 看起来你可能有一个列表的字符串,它有一个元组作为第一个元素。 type(fetch) 带给你什么?
  • 它说它是类型元组,但我通过从数据库中一次获取一个元素并将它们放在一个列表中来解决它并且它起作用了。不是理想的方法,但它有效。
  • 如您所愿,但您没有找到好的解决方案,因为您提出的问题和提供的信息非常糟糕。它真的说“它是类型元组”吗? tuples 不是类型(尽管 tuple 是); fetchtuple 是没有意义的,因为在你说 fetch=str(... 之前的那一行,所以在其他地方你已经改变了 fetchstr

标签: python arrays list unicode tuples


【解决方案1】:

这个

[(1, u'Produção', u'Produção', u'NULL', u'NULL')]

是一个单元素列表。此列表中唯一的元素是 5 元组。

您可以像这样索引第一个元素并将其转换为列表:

elements = [(1, u'Produção', u'Produção', u'NULL', u'NULL')]
items = list(elements[0])

【讨论】:

  • 执行items=list(fetch[0]) 并打印fetch 返回[u'[']。你知道为什么它返回那个而不是[1]吗?
【解决方案2】:
In [9]: l = [(1, u'Produo', u'Produo', 'NULL', 'NULL')]

In [10]: l1 = [iterl for iterl in l[0]]

In [11]: l1
Out[11]: [1, u'Produo', u'Produo', 'NULL', 'NULL']

排序,对吗?

【讨论】:

  • 不,l1 返回 [u'['] :/
  • 奇怪,我的示例工作正常,正如您在 ipython 粘贴中看到的那样,您是否有机会使用 3.x?
  • 问题是如果我像这样发起fetch= [(1, u'Produo', u'Produo', 'NULL', 'NULL')],它工作正常。如果我使用从数据库中获得的fetch 元组,它会打印我告诉你的内容。所以,我解决了这个问题,我一次从数据库中获取一个元素并将它们放在一个列表中并且它起作用了。不是理想的方法,但它有效。
猜你喜欢
  • 2017-07-04
  • 1970-01-01
  • 2011-07-27
  • 2017-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-11
  • 1970-01-01
相关资源
最近更新 更多