【python】如何对一个list分组

细露仔 2019-01-18 04:25:07
[(u'PLC1_NTU1001_VAL', 1, u'oneonly', 2.0),
(u'PLC1_PHT1001_VAL', 2, u'oneonly', 2.0),
(u'PLC1_ORP1001_VAL', 3, u'oneonly', 2.0),
(u'PLC1_PT2001_VAL', 4, u'oneonly', 2.0),
(u'PLC1_FT1001_VAL', 5, u'oneonly', 2.0),
(u'PLC1_FT1001_Total', 6, u'oneonly', 3.0),
(u'PLC1_FT1001_Total', 7, u'subtotal', 3.0),
(u'PLC1_FT1004_VAL', 8, u'oneonly', 2.0),
(u'PLC1_FT1004_Total', 9, u'oneonly', 3.0),
(u'PLC1_FT1004_Total', 10, u'subtotal', 3.0),
(u'PLC1_LT1001_VAL', 11, u'oneonly', 2.0),
(u'PLC1_LT1002_VAL', 12, u'oneonly', 2.0),
(u'PLC6_NTU1001_VAL', 13, u'oneonly', 2.0),
(u'PLC6_PH1001_VAL', 14, u'oneonly', 2.0),
(u'PLC6_CL1001_VAL', 15, u'oneonly', 2.0),
(u'PLC6_FT1001_VAL', 16, u'oneonly', 2.0),
(u'PLC6_FT1001_Total', 17, u'oneonly', 3.0),
(u'PLC6_FT1001_Total', 18, u'subtotal', 3.0),
(u'PLC6_PT1001_VAL', 19, u'oneonly', 2.0),
(u'PLC6_FT1002_VAL', 20, u'oneonly', 2.0),
(u'PLC6_FT1002_Total', 21, u'oneonly', 3.0),
(u'PLC6_FT1002_Total', 22, u'subtotal', 3.0)]
这个list的大概是这样,是查询数据库得出的。每个元素都是一个tuple。
现在是想根据list[N][3]的值来将其分成M个list。
比如上面的就是2.0的放一个list里,3.0的放另一个list里(如果有4.0的话,那就4.0再放另一个list里)
请问这部分函数要怎么写呢?
...全文
1330 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ruancan 2019-01-18
  • 打赏
  • 举报
回复

a = [(u'PLC1_NTU1001_VAL', 1, u'oneonly', 2.0),
(u'PLC1_PHT1001_VAL', 2, u'oneonly', 2.0),
(u'PLC1_ORP1001_VAL', 3, u'oneonly', 2.0),
(u'PLC1_PT2001_VAL', 4, u'oneonly', 2.0),
(u'PLC1_FT1001_VAL', 5, u'oneonly', 2.0),
(u'PLC1_FT1001_Total', 6, u'oneonly', 3.0),
(u'PLC1_FT1001_Total', 7, u'subtotal', 3.0),
(u'PLC1_FT1004_VAL', 8, u'oneonly', 2.0),
(u'PLC1_FT1004_Total', 9, u'oneonly', 3.0),
(u'PLC1_FT1004_Total', 10, u'subtotal', 3.0),
(u'PLC1_LT1001_VAL', 11, u'oneonly', 2.0),
(u'PLC1_LT1002_VAL', 12, u'oneonly', 2.0),
(u'PLC6_NTU1001_VAL', 13, u'oneonly', 2.0),
(u'PLC6_PH1001_VAL', 14, u'oneonly', 2.0),
(u'PLC6_CL1001_VAL', 15, u'oneonly', 2.0),
(u'PLC6_FT1001_VAL', 16, u'oneonly', 2.0),
(u'PLC6_FT1001_Total', 17, u'oneonly', 3.0),
(u'PLC6_FT1001_Total', 18, u'subtotal', 3.0),
(u'PLC6_PT1001_VAL', 19, u'oneonly', 2.0),
(u'PLC6_FT1002_VAL', 20, u'oneonly', 2.0),
(u'PLC6_FT1002_Total', 21, u'oneonly', 3.0),
(u'PLC6_FT1002_Total', 22, u'subtotal', 3.0)]


def analysis(param):
result = {}
for t in param:
if t[3] not in result:
result[t[3]] = [t]
else:
result[t[3]].append(t)

return result


print(analysis(a))

风铃扬音 2019-01-18
  • 打赏
  • 举报
回复
风铃扬音 2019-01-18
  • 打赏
  • 举报
回复
list = [(u'PLC1_NTU1001_VAL', 1, u'oneonly', 2.0),
(u'PLC1_PHT1001_VAL', 2, u'oneonly', 2.0),
(u'PLC1_ORP1001_VAL', 3, u'oneonly', 2.0),
(u'PLC1_PT2001_VAL', 4, u'oneonly', 2.0),
(u'PLC1_FT1001_VAL', 5, u'oneonly', 2.0),
(u'PLC1_FT1001_Total', 6, u'oneonly', 3.0),
(u'PLC1_FT1001_Total', 7, u'subtotal', 3.0),
(u'PLC1_FT1004_VAL', 8, u'oneonly', 2.0),
(u'PLC1_FT1004_Total', 9, u'oneonly', 3.0),
(u'PLC1_FT1004_Total', 10, u'subtotal', 3.0),
(u'PLC1_LT1001_VAL', 11, u'oneonly', 2.0),
(u'PLC1_LT1002_VAL', 12, u'oneonly', 2.0),
(u'PLC6_NTU1001_VAL', 13, u'oneonly', 2.0),
(u'PLC6_PH1001_VAL', 14, u'oneonly', 2.0),
(u'PLC6_CL1001_VAL', 15, u'oneonly', 2.0),
(u'PLC6_FT1001_VAL', 16, u'oneonly', 2.0),
(u'PLC6_FT1001_Total', 17, u'oneonly', 3.0),
(u'PLC6_FT1001_Total', 18, u'subtotal', 3.0),
(u'PLC6_PT1001_VAL', 19, u'oneonly', 2.0),
(u'PLC6_FT1002_VAL', 20, u'oneonly', 2.0),
(u'PLC6_FT1002_Total', 21, u'oneonly', 3.0),
(u'PLC6_FT1002_Total', 22, u'subtotal', 3.0)]
print(list[1][3])
print(type(list[1][3]))
print(len(list))
list2 = []
list3 = []
for i in range(0, list.__len__()):
if list[i][3] == 2.0:
list2.insert(1, list[i])
elif list[i][3] == 3.0:
list3.insert(1, list[i])
print(list2)
print(list3)
冷风1023 2019-01-18
  • 打赏
  • 举报
回复
list1 = [(u'PLC1_NTU1001_VAL', 1, u'oneonly', 2.0),
(u'PLC1_PHT1001_VAL', 2, u'oneonly', 2.0),
(u'PLC1_ORP1001_VAL', 3, u'oneonly', 2.0),
(u'PLC1_PT2001_VAL', 4, u'oneonly', 2.0),
(u'PLC1_FT1001_VAL', 5, u'oneonly', 2.0),
(u'PLC1_FT1001_Total', 6, u'oneonly', 3.0),
(u'PLC1_FT1001_Total', 7, u'subtotal', 3.0),
(u'PLC1_FT1004_VAL', 8, u'oneonly', 2.0),
(u'PLC1_FT1004_Total', 9, u'oneonly', 3.0),
(u'PLC1_FT1004_Total', 10, u'subtotal', 3.0),
(u'PLC1_LT1001_VAL', 11, u'oneonly', 2.0),
(u'PLC1_LT1002_VAL', 12, u'oneonly', 2.0),
(u'PLC6_NTU1001_VAL', 13, u'oneonly', 2.0),
(u'PLC6_PH1001_VAL', 14, u'oneonly', 2.0),
(u'PLC6_CL1001_VAL', 15, u'oneonly', 2.0),
(u'PLC6_FT1001_VAL', 16, u'oneonly', 2.0),
(u'PLC6_FT1001_Total', 17, u'oneonly', 3.0),
(u'PLC6_FT1001_Total', 18, u'subtotal', 3.0),
(u'PLC6_PT1001_VAL', 19, u'oneonly', 2.0),
(u'PLC6_FT1002_VAL', 20, u'oneonly', 2.0),
(u'PLC6_FT1002_Total', 21, u'oneonly', 3.0),
(u'PLC6_FT1002_Total', 22, u'subtotal', 3.0)]



d = {}
for i in list1:
d.setdefault(i[3],[]).append(i)
print(d)
listresult = list(d.values())

print(listresult)

37,743

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧