gpt4 book ai didi

python - 更智能的数据收集方式或数据排序方式

转载 作者:行者123 更新时间:2023-11-30 22:49:39 24 4
gpt4 key购买 nike

我使用 snip1 从 sqlite 表中提取数据,这当然会获取包含相关 id 值的每一行。 services 列表现在看起来像 output1

我希望能够将元组列表列表排序为更易于管理的数据集。合并所有相关的 id 集。例如,[(10, u'80'), (10, u'443')] 变为 {10: 80, 443},当然还添加了所有其他条目到同一个dict

我很难对数据进行排序。我如何比较同一列表中的项目?下面的 example1 显示了已清理的数据,但我不确定如何从中获得干净的字典。

剪辑1

c.execute('SELECT * FROM services WHERE id=?', (id_value,))
services = c.fetchall()

输出1

[[(2, u'22')], [(3, u'25')], [(4, u'443')], [(5, u'443')], [(6, u'443')], [(7, u'22')], 
[(8, u'80')], [(9, u'443')], [(10, u'80'), (10, u'443')], [(11, u'80'), (11, u'443')],
[(12, u'80'), (12, u'443')], [(13, u'443')], [(14, u'80'), (14, u'443')], [(15, u'25')]]

示例1

data = [(2, u'22')], [(3, u'25')], [(4, u'443')], [(5, u'443')], [(6, u'443')], [(7, u'22')], 
[(8, u'80')], [(9, u'443')], [(10, u'80'), (10, u'443')], [(11, u'80'), (11, u'443')],
[(12, u'80'), (12, u'443')], [(13, u'443')], [(14, u'80'), (14, u'443')], [(15, u'25')]]

for item in data:
for i in item:
print i #output2

输出2

(2, u'22')
(3, u'25')
(4, u'443')
(5, u'443')
(6, u'443')
(7, u'22')
(8, u'80')
(9, u'443')
(10, u'80')
(10, u'443')
(11, u'80')
(11, u'443')
(12, u'80')
(12, u'443')
(13, u'443')
(14, u'80')
(14, u'443')
(15, u'25')

最佳答案

您可以使用 dictlist 理解用一行来完成此操作

>>> data = [[(2, u'22')], [(3, u'25')], [(4, u'443')], [(5, u'443')], [(6, u'443')], [(7, u'22')], 
[(8, u'80')], [(9, u'443')], [(10, u'80'), (10, u'443')], [(11, u'80'), (11, u'443')],
[(12, u'80'), (12, u'443')], [(13, u'443')], [(14, u'80'), (14, u'443')], [(15, u'25')]]
>>> output = {record[0][0]: [int(item[1]) for item in record] for record in data}
>>> output
{2: [22],
3: [25],
4: [443],
5: [443],
6: [443],
7: [22],
8: [80],
9: [443],
10: [80, 443],
11: [80, 443],
12: [80, 443],
13: [443],
14: [80, 443],
15: [25]}

关于python - 更智能的数据收集方式或数据排序方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39681360/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com