我有一个我从MySQL服务器查询的列表,其中包含类似于下面示例的内容,但其中包含更多元素。由于某些原因,它有额外的逗号和括号。
[(datetime.datetime(2013, 1, 1, 0, 1, 14),), (datetime.datetime(2013, 1, 1, 1, 33, 50),)]
有没有办法消除会产生
的特定括号和彗星[datetime.datetime(2013, 1, 1, 0, 1, 14), datetime.datetime(2013, 1, 1, 1, 33, 50)]
当我打印列表中的第一个元素时,它显示
(datetime.datetime(2013, 1, 1, 0, 1, 14),)
我想要的地方
datetime.datetime(2013, 1, 1, 0, 1, 14)
我似乎无法知道在哪里寻找此解决方案或如何搜索此问题。有什么建议吗?
答案 0 :(得分:2)
它返回一个元组列表,每个元组包含你要查询的内容。您只查询了一个字段,因此每个元组包含1个项目。为了平息这一点,我使用了一个简单的列表理解:
flattened = [x[0] for x in result]
result
是您的原始列表。
答案 1 :(得分:2)
您的查询似乎返回list
tuple
s:
myResult = [
(datetime.datetime(2013, 1, 1, 0, 1, 14),),
(datetime.datetime(2013, 1, 1, 1, 33, 50),)
]
您可以通过执行以下操作来访问第一个元组的第一个元素:
print(myResult[0][0])
#datetime.datetime(2013, 1, 1, 0, 1, 14)
此处,第一个[0]
引用列表myResult
的索引0,第二个[0]
引用元组myResult[0]
的索引0。
或者您可以使用列表推导修改myResult
以获取第一个元素:
print([result[0] for result in myResult])
#[datetime.datetime(2013, 1, 1, 0, 1, 14), datetime.datetime(2013, 1, 1, 1, 33, 50)]
这不是一个错误,而是一个显示问题。它显示为(some_value,)
而非(some_value)
的原因是因为最后没有,
,您将不会拥有tuple
而是dirty = [(datetime.datetime(2013, 1, 1, 0, 1, 14),), (datetime.datetime(2013, 1, 1, 1, 33, 50),)]
生成器表达式。
在此处阅读更多内容:Python tuple vs. generator。
答案 2 :(得分:1)
通过获取每个列表中的第一个元素,您只需要清理列表。
使用您的示例列表:
clean = [i[0] for i in dirty]
您想要获取每个列表中的第一个元素:
clean[0]
通话:
datetime.datetime(2013, 1, 1, 0, 1, 14)
产生
Rectangle r = new Rectangle();
r.setWidth(150);
r.setHeight(150);
Group root = new Group(r, e, boh);
Scene scene = new Scene(root, 1000, 1000);
scene.setOnMouseDragged(ev -> {
r.setX(ev.getX() - r.getWidth() / 2);
r.setY(ev.getY() - r.getHeight() / 2);
});