映射map的返回如何显示
请教鱼油高手,代码如下:from PIL import Image
x_1 = x_train[:15]
path_1 = "D:/PyCharm_project/mnist/try1/"
def file_name(x):
counter = 0
for x in range(15):
img = Image.fromarray(x_1)
img = img.resize((224,224)).convert('RGB')
file_name = img.save(os.path.join(path_1,str(counter)+".jpg"))
counter += 1
for i in map(file_name,range(15)):
print(i)
但是,print出来的都是None, 这是为什么?后来我用字典解决了这个问题,但是我觉得用map应该也是可以的。 你希望 i 是什么? 函数没有返回值当然就都是None 我希望把15对映射都打印出来 后来我用字典,内容如下:
{0: 'D:/PyCharm_project/mnist/try\\0.jpg', 1: 'D:/PyCharm_project/mnist/try\\1.jpg', 2: 'D:/PyCharm_project/mnist/try\\2.jpg', 3: 'D:/PyCharm_project/mnist/try\\3.jpg', 4: 'D:/PyCharm_project/mnist/try\\4.jpg', 5: 'D:/PyCharm_project/mnist/try\\5.jpg', 6: 'D:/PyCharm_project/mnist/try\\6.jpg', 7: 'D:/PyCharm_project/mnist/try\\7.jpg', 8: 'D:/PyCharm_project/mnist/try\\8.jpg', 9: 'D:/PyCharm_project/mnist/try\\9.jpg', 10: 'D:/PyCharm_project/mnist/try\\10.jpg', 11: 'D:/PyCharm_project/mnist/try\\11.jpg', 12: 'D:/PyCharm_project/mnist/try\\12.jpg', 13: 'D:/PyCharm_project/mnist/try\\13.jpg', 14: 'D:/PyCharm_project/mnist/try\\14.jpg'}
但是,用map不知道为啥不能显示 Geeker_odd 发表于 2022-3-20 13:17
后来我用字典,内容如下:
{0: 'D:/PyCharm_project/mnist/try\\0.jpg', 1: 'D:/PyCharm_project/mnist/tr ...
map 函数是将你的迭代器传进指定的函数,然后得到函数的返回值的。
你的函数没有返回值默认就是 None 了,我改了以下你的代码,看看是不是你要的效果。
from PIL import Image
x_1 = x_train[:15]
path_1 = "D:/PyCharm_project/mnist/try1/"
def file_name(x):
img = Image.fromarray(x_1)
img = img.resize((224,224)).convert('RGB')
counter = x + 1
file_name = os.path.join(path_1,str(counter)+".jpg")
img.save(file_name)
return (file_name, counter)
for i in map(file_name,range(15)):
print(i) isdkz 发表于 2022-3-20 13:43
map 函数是将你的迭代器传进指定的函数,然后得到函数的返回值的。
你的函数没有返回值默认就是 None...
counter = x + 1, 这个不行,因为我要按顺序在文件名字上显示正确的数字,就是0,1,2,3.........14 Geeker_odd 发表于 2022-3-20 15:10
counter = x + 1, 这个不行,因为我要按顺序在文件名字上显示正确的数字,就是0,1,2,3.........14
好吧,我看走眼你那个字典了,这样呢:
from PIL import Image
x_1 = x_train[:15]
path_1 = "D:/PyCharm_project/mnist/try1/"
def file_name(x):
img = Image.fromarray(x_1)
img = img.resize((224,224)).convert('RGB')
file_name = os.path.join(path_1,str(x)+".jpg")
img.save(file_name)
return (x, file_name)
for i in map(file_name,range(15)):
print(i) 我给函数增加了返回值,但是还是None:
from PIL import Image
import keras
from keras.datasets import mnist
import os
(x_train,y_train),(x_test,y_test) = mnist.load_data()
x_1 = x_train[:15]
path_1 = "D:/PyCharm_project/mnist/try1/"
def file_name(x):
for x in range(15):
img = Image.fromarray(x_1)
img = img.resize((224,224)).convert('RGB')
file_name = img.save(os.path.join(path_1,str(x)+".jpg"))
return file_name
for i in map(file_name, range(15)):
print(i) isdkz 发表于 2022-3-20 12:55
你希望 i 是什么?
我希望得到的一个列表:["0.jpg", "1.jpg", "2.jpg", "3.jpg"......, "14.jpg"] 折腾半天,发现还是用列表解决,不需要map:
from PIL import Image
import keras
from keras.datasets import mnist
import os
(x_train,y_train),(x_test,y_test) = mnist.load_data()
x_1 = x_train[:15]
path_1 = "D:/PyCharm_project/mnist/try1/"
def file_name(x):
list = []
for i in range(x):
img = Image.fromarray(x_1)
img = img.resize((224,224)).convert('RGB')
img_name = os.path.join(path_1,str(i)+".jpg")
img.save(img_name)
list.append(img_name)
return list
file_name(15)
谢谢各位高手指正!
页:
[1]