Skip to main content
 首页 » 编程设计

python之如何循环遍历 python 列表列表中的每个项目

2025年05月04日12linjiqin

我有一个存储在列表中的项目列表作为列表的列表。如果找到,我想从每个项目中删除一个特定字符。如果我只使用列表的第一个元素,我就能做到。但是,在使用 for 循环时出现“IndexError:列表索引超出范围”。

这是我的 list 。

list1 = [['2.6x3.65'],[],['2','2.9x1.7','2.5x1.3']] 

这就是我对第一个元素的处理方式。

if('x' in list1[0][0]): 
  rep1 = re.sub('x', ', ', list1[0][0]) 

这为我提供了 2.6、3.65 的字符串格式输出,稍后我可以将其转换为 float 。

但是,当我使用以下代码实现相同的 using for 循环时:

 for i in list1[i][i]: 
   if('x' in list1[i][i]): 
     rep2 = re.sub('x', ', ', list1[i][i]) 

它在使用 for 循环时给出“IndexError: list index out of range”。

我的预期结果是如下所示:

 list2 = [[2.6, 3.65],[],[2, 2.9, 1.7, 2.5, 1.3]] 

请您参考如下方法:

您可以使用嵌套列表理解:

list1 = [['2.6x3.65'], [], ['2', '2.9x1.7', '2.5x1.3']] 
list2 = [sum([list(map(float, i.split('x'))) for i in l], []) for l in list1] 

输出:

[[2.6, 3.65], [], [2.0, 2.9, 1.7, 2.5, 1.3]] 

不要将 map() 与列表理解混合:

list2 = [[float(e) for i in l for e in i.split('x')] for l in list1]