我想在嵌套列表中插入一组变量
im1 = cv2.imread('0_0.jpg')
im2 = cv2.imread('0_1080.jpg')
im3 = cv2.imread('960_0.jpg')
im4 = cv2.imread('960_1080.jpg')
im5 = cv2.imread('1920_0.jpg')
im6 = cv2.imread('1920_1080.jpg')
im7 = cv2.imread('2880_0.jpg')
im8 = cv2.imread('2880_1080.jpg')
我想创建一个自定义大小的嵌套列表,其中包含具有迭代命名的变量
[[im1, im2],[im3, im4], [im5, im6], [im7, im8]]
我已经尝试创建一个简单的列表生成器,如下所示
n = 4
m = 2
a = [['im{0}'.format(i)] * m for i in range(n)]
但是结果仍然不像我预期的那样,并且变量是字符串
[['im0', 'im0'], ['im1', 'im1'], ['im2', 'im2'], ['im3', 'im3']]
我认为Tgilgul的答案是正确的,但是,我也想添加这个解决方案,因为在我看来,基本问题并不是关于变量的
此外,如果要从目录中读取更多图像,此解决方案更具动态性
成对列表
文件名输出
成对词典
文件名输出
使用上述两种解决方案,图像可以在其他功能需要的地方读取
我真的希望我做对了,但我相信您需要一个对列表,并且值应该是从cv2.imread()的相关调用返回的类
简短回答
使用eval(),它接受字符串输入并将其转换为它们表示的python值。例如:
见a nice tutorial on eval here
更多详细信息
检查您的请求时,我发现代码中存在另一个问题: 您需要此输出:
但是您的循环为您提供了具有相同索引的对,而不是(x,x+1):
我创建了一个示例文件,该文件回答了您提供的示例值,对代码的更改非常小:
由于我没有这些图像,它只是证明了这些对构造良好,属于Img类型:
相关问题 更多 >
编程相关推荐