【发布时间】:2020-10-16 07:47:34
【问题描述】:
我有一个像这样的浮点元组列表:
my_list = [(1.1, 6.6, 3.3), (4.4, 5.5, 9.9)]
但是,我需要为我的值设置一个限制,这样任何元组中的值都不会超过限制。为了这个例子,假设limit = 6.。
我正在寻找一个简单的列表理解解决方案,但到目前为止我所尝试的一切都失败了。
例如:
new_list = [ y for x in my_list if y <= limit for y in x ]
导致“UnboundLocalError: local variable 'y' referenced before assignment”。
使用嵌套的 for 循环我可以找到解决方案:
my_new_list = []
for my_tuple in my_list:
new_tuple = []
for i, value in enumerate(my_tuple):
if value > limit:
value = limit
new_tuple.append(value)
my_new_list.append(new_tuple)
但我正在寻找一个简单的列表理解解决方案。
编辑:这已经解决了,但是为了澄清,由于问题存在一些歧义,我希望保持列表的形式相同,并用该限制替换任何超过限制的值。这是我正在寻找的输出:[(1.1, 6., 3.3), (4.4, 5.5, 6.)]
【问题讨论】:
标签: python list tuples list-comprehension