Python 是否可以删除列表中某个元素的重复内容?
我有一个从MySQL服务器查询的列表,其中包含一些类似于下面的示例的内容,但其中包含更多的元素。出于某些原因,它有额外的逗号和括号Python 是否可以删除列表中某个元素的重复内容?,python,list,Python,List,我有一个从MySQL服务器查询的列表,其中包含一些类似于下面的示例的内容,但其中包含更多的元素。出于某些原因,它有额外的逗号和括号 [(datetime.datetime(2013,1,1,0,1,14),(datetime.datetime(2013,1,1,1,33,50),)] 有没有办法消除会产生错误的特定括号和COMA [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),)]
有没有办法消除会产生错误的特定括号和COMA
[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)
我似乎不知道在哪里寻找这个解决方案,甚至不知道如何寻找这个问题。有什么建议吗?它返回一个元组列表,每个元组包含您要查询的内容。您只查询了一个字段,因此每个元组包含1项。为了让这更简单,我将使用一个简单的列表:
flattened = [x[0] for x in result]
其中,
result
是您的原始列表。它返回一个元组列表,每个元组包含您要查询的内容。您只查询了一个字段,因此每个元组包含1项。为了让这更简单,我将使用一个简单的列表:
flattened = [x[0] for x in result]
其中,
result
是您的原始列表。您的查询似乎返回了元组的列表
:
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)]
这不是一个bug,而是一个显示问题。它显示为(某些值)
而不是(某些值)
的原因是,如果最后没有,
,就不会有元组,而是生成器表达式
请在此处阅读更多信息:。您的查询似乎返回了元组的列表:
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)]
这不是一个bug,而是一个显示问题。它显示为(某些值)
而不是(某些值)
的原因是,如果最后没有,
,就不会有元组,而是生成器表达式
请在此处阅读更多信息:。看起来您只需要通过获取每个列表中的第一个元素来清理列表
使用您的示例列表:
dirty = [(datetime.datetime(2013, 1, 1, 0, 1, 14),), (datetime.datetime(2013, 1, 1, 1, 33, 50),)]
您希望获取每个列表中的第一个元素:
clean = [i[0] for i in dirty]
电话:
clean[0]
产生:
datetime.datetime(2013, 1, 1, 0, 1, 14)
看起来您只需要通过获取每个列表中的第一个元素来清理列表
使用您的示例列表:
dirty = [(datetime.datetime(2013, 1, 1, 0, 1, 14),), (datetime.datetime(2013, 1, 1, 1, 33, 50),)]
您希望获取每个列表中的第一个元素:
clean = [i[0] for i in dirty]
电话:
clean[0]
产生:
datetime.datetime(2013, 1, 1, 0, 1, 14)
看起来您有一个元组列表,只想打印第一个元素。假设查询结果存储在变量myResult
中,您可以执行以下操作:print(myResult[0][0])
或循环所有结果:对于myResult中的结果:print(result[0])
欢迎使用StackOverflow。请按照您创建此帐户时的建议,阅读并遵循帮助文档中的发布指南。适用于这里。在您发布MCVE代码并准确描述问题之前,我们无法有效地帮助您。我们应该能够将您发布的代码粘贴到文本文件中,并重现您描述的问题。特别是,发布问题代码:您向我们展示的内容没有输出。@pault太棒了!现在我有了一个不同的输出。你知道这是怎么发生的吗。当我调用justprint(myResult)
时,它会打印所有的datetime.datetimelook,就像你有一个元组列表,你只想打印第一个元素一样。假设查询结果存储在变量myResult
中,您可以执行以下操作:print(myResult[0][0])
或循环所有结果:对于myResult中的结果:print(result[0])
欢迎使用StackOverflow。请按照您创建此帐户时的建议,阅读并遵循帮助文档中的发布指南。适用于这里。在您发布MCVE代码并准确描述问题之前,我们无法有效地帮助您。我们应该能够将您发布的代码粘贴到文本文件中,并重现您描述的问题。特别是,发布问题代码:您向我们展示的内容没有输出。@pault太棒了!现在我有了一个不同的输出。你知道这是怎么发生的吗。当我调用justprint(myResult)
时,它会打印所有的datetime.datetime