Skip to main content
 首页 » 编程设计

python之使用 map 函数获取列表中奇数位置的列表元素

2024年08月23日30lhb25

这是我一直在尝试的代码。它读取包含两个列表的 .txt 文件。分别由D1和D2读取。在 D2 中,我只需要奇数位置的元素。下面给出了我尝试过的代码,它没有给我所需的输出。这是代码:

import cv2 
import numpy 
 
 
fo = open("Test_input0.txt","r") 
D1=[map(int, fo.readline().split())] 
D2=[map(int, fo.readline().split())] 
d2 = D2[1::2] 
 
 
print d2 

它给出的输出是:

[ ]

.txt文件内容格式如下:

1 2 1 3 7 6 2 9 8 1 5 4 
5 10 6 11 15 15                 

请您参考如下方法:

map() 返回一个列表,然后您用 [] 将其包装在另一个列表中。当你尝试

d2 = D2[1::2] 

您正试图从索引 1 中切出一个包含单个项目的列表。因此,您将返回一个空列表。

您可以通过删除周围的 [] 来更正它:

D1= map(int, fo.readline().split()) 
D2= map(int, fo.readline().split()) 

或者,通常被认为更 Pythonic,列表理解:

D1 = [int(x) for x in fo.readline().split()] 
D2 = [int(x) for x in fo.readline().split()] 

现在 D2[1::2] 应该在奇数索引处为您提供 D2 中的项目。

你甚至可以在一个列表理解中结合这两个操作:

D2 = [int(x) for x in fo.readline().split()[1::2]] 

它的优点是只将需要的值转换为整数。