如何删除列表元素重复内容?并处理MySQL查询列表的多余括号逗号
解决方案:处理列表重复与MySQL查询结果格式化
一、删除列表中的重复元素
这得看你要不要保留原列表的元素顺序:
- 如果不需要保留顺序,直接把列表转成集合再转回列表就行,集合会自动帮你去重:
import datetime original_list = [datetime.datetime(2013, 1, 1, 0, 1, 14), datetime.datetime(2013, 1, 1, 0, 1, 14), datetime.datetime(2013, 1, 1, 1, 33, 50)] unique_list = list(set(original_list)) - 如果需要保留元素出现的原始顺序(Python 3.7及以上版本可用),用
dict.fromkeys()更合适,它会保留每个元素首次出现的位置:
要是你用的是更早的Python版本,就用unique_list = list(dict.fromkeys(original_list))collections.OrderedDict来实现同样的顺序保留效果。
二、处理MySQL查询返回的列表格式
你拿到的这种带多余括号和逗号的列表,是因为MySQL查询返回的每一行都是一个元组(哪怕只有一个字段)。要转成你想要的格式,用列表推导式就能轻松搞定:
import datetime # 假设这是你从MySQL拿到的原始列表 mysql_result = [(datetime.datetime(2013, 1, 1, 0, 1, 14),), (datetime.datetime(2013, 1, 1, 1, 33, 50),)] # 提取每个元组的第一个元素 formatted_list = [item[0] for item in mysql_result]
这样formatted_list就是你想要的[datetime.datetime(2013, 1, 1, 0, 1, 14), datetime.datetime(2013, 1, 1, 1, 33, 50)]了。
至于打印首个元素的要求,直接执行print(formatted_list[0])就行,Python会自动输出datetime.datetime(2013, 1, 1, 0, 1, 14)这种默认的字符串表示形式,完全符合你的需求。
内容的提问来源于stack exchange,提问作者Han
相关产品推荐
相关产品推荐

