最直接的方法是将浮点数乘以一个浮点数并返回一个整数元组

时间:2015-10-20 17:25:58

标签: python python-2.7 types tuples

这就是我正在做的事情,将一个int元组重新调整为另一个int元组。还有更好的方法吗?

size_tup = tuple([int(round(s*shrink)) for s in size])

我需要使用Image模块调整图片大小,因为这需要tuple ints。因此,例如,如果我想将图像大小调整50%,我会这样做

size = .5     
size_tup = tuple([int(round(s*shrink)) for s in size])   
im = im.resize(size_tup, Image.ANTIALIAS)

所以我只使用长度为2的元组。我主要关注代码的简单性,因为上面看起来有些过分。

2 个答案:

答案 0 :(得分:1)

在您的代码中,您正在创建一个列表,然后将其转换为元组。使用map函数来延迟评估列表(在python3中)。

<Resource
    id="ra/activemq"
    type="ActiveMQResourceAdapter">
    BrokerXmlConfig = broker:(tcp://127.0.0.1:61617,network:static:tcp://127.0.0.1:61616)/server1?persistent=false&amp;useJmx=true
    ServerUrl = tcp://127.0.0.1:61617
</Resource>

根据评论,你也可以这样做(删除size_tup = tuple( map(int, #this function calls int on each element map(round, #this function calls round on each element map(lambda x : x * shrink, #this function multplies each element by shrink size)))) ):

[]

答案 1 :(得分:-1)

我觉得类似的东西会对你有帮助。

map(lambda x: x * n, tuple)

根据地图功能的定义:

  

map(function, iterable, ...)   将函数应用于iterable的每个项目并返回结果列表