如果我创建了一个列表来保存一个数据库表的列。我将如何遍历ID列表以一次将一行添加到新对象。因此,每个对象将为数据库表保留一行。
示例列表
ListID[1,2,3,4,5]
List1[34,56,34,345,55]
list2[644,64,232,44,1]
list3[622,12,44,55,01]
然后,我想创建一个函数,该函数将遍历ListID并创建一个“ list
对象”,例如,[1, 34, 644, 622]
将是第一个对象,然后是[2, 56, 64, 12]
。我不确定如何执行此操作,但是将其保存为仍然可以保留到数据库表的格式
答案 0 :(得分:0)
如果我理解正确,则可以使用zip
做类似的事情:
ListID = [1,2,3,4,5]
List1 = [34,56,34,345,55]
list2 = [644,64,232,44,1]
list3 = [622,12,44,55,1]
objectList = [list(elem) for elem in zip(ListID,List1,list2,list3)]
print(objectList)
输出:
[[1, 34, 644, 622], [2, 56, 64, 12], [3, 34, 232, 44], [4, 345, 44, 55], [5, 55, 1, 1]]
另一种选择是使用map
函数和zip
:
objectList = list(map(lambda elem: list(elem), zip(ListID,List1,list2,list3)))
答案 1 :(得分:0)
您可以将字典与zip结合使用,这样您还可以使用ListID检索数据:
ListID = [1,2,3,4,5]
List1 = [34,56,34,345,55]
List2 = [644,64,232,44,1]
List3 = [622,12,44,55,1]
dictObj = {}
for ID, l1, l2, l3 in zip(ListID, List1, List2, List3):
dictObj[f'{ID}'] = [ID, l1, l2, l3]
答案 2 :(得分:0)
如果您不想使用任何第三方库(例如熊猫),则可以使用defaultdict来轻松实现:
from collections import defaultdict
dd = defaultdict(list)
listID = [1,2,3,4,5]
list1 = [34,56,34,345,55]
list2 = [644,64,232,44,1]
list3 = [622,12,44,55,1]
for idx, c1, c2 in zip(listID,list1, list2):
dd[idx].extend([c1, c2])
dd
# defaultdict(list,
# {1: [34, 644],
# 2: [56, 64],
# 3: [34, 232],
# 4: [345, 44],
# 5: [55, 1]})
for idx, item in zip(listID,list3):
dd[idx].append(item)
dd
# defaultdict(list,
# {1: [34, 644, 622],
# 2: [56, 64, 12],
# 3: [34, 232, 44],
# 4: [345, 44, 55],
# 5: [55, 1, 1]})