在列表中的列表中添加列表中的元素

2024-09-24 22:22:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个列表[I]包含20个其他列表[j],在这个列表中,我有其他列表[k]包含96个元素。 我正在尝试将该列表添加到另一个包含96个元素的列表中。 我得到了正确的结果,但是列表中列表的格式已经不存在了,我只有一个包含整个结果的列表。要获得正确的结果,但仅在一个列表中,则代码如下:

reslist = []
for i in range(len(listi)):
    for j in range(len(listi[i])):
        for k in range(96):
            reslist.append(listi2[k]+listi[i][j][k]) 

就像我说的,这给了我一个正确的结果,但只是在一个列表中。 我试着做一些类似的事情来列出更多的清单:

reslist = []
for i in range(len(listi)):
    reslist.append([])
    for j in range(len(listi[i])):
        for k in range(96):
            reslist[i].append(listi2[k]+listi[i][j][k]) 

然后我用20作为旧的一个,我得到了比它应该大得多的reslist[j]。 我正在寻找的格式与列表的格式相同,里面有3个列表,每个列表中有96个元素

我还有一个问题,因为不需要创建一个新的列表,更理想的方法可能是只向列表[k]元素添加list2[k]。我添加了我正在尝试添加元素的列表的图片

总之: 我有两张单子。选项1:不创建新列表,而是将列表2的元素添加到列表1中。(我在代码中的解决方案是创建一个新列表) 列表一包含20个列表和x个列表,其中包括20个列表和96个元素。列表2只有96个元素。 因此: 列表[k]=2.5,且列表[i][j][k]有1,则列表中的新值应为列表[i][j][k]=3.5,并对列表中的所有元素进行调整。我希望这是可以理解的

enter image description here


Tags: 方法代码in元素列表forlen格式
1条回答
网友
1楼 · 发布于 2024-09-24 22:22:38

根据您的帖子,现有列表结构如下:

list1 
     - 0
         - 0 - [.....96......]
         - 1 - [.....96......]
         - 2 - [.....96......]
           |
     - 1
         - 0 - [.....96......]
         - 1 - [.....96......]
         - 2 - [.....96......]
           |
     - 2
     - 3
     - 4
       |
     - 19

list2 - [.....96......]

目标是:

  • list1复制到新列表
  • 在新列表中,对于最低级别子列表中的每个元素,添加来自list2的匹配元素

这段代码应该适用于这一点

# create new list for totals
lstNew = copy.deepcopy(list1)

# process adds
for e1 in lstNew:  # 20 elements
  for e2 in e1:     # each sublist
     for i in range(len(e2)):  # 96 elements
         e2[i] += lists[i]  # add element from list2
         
print(lstNew)

相关问题 更多 >