![](/img/trans.png)
[英]Python - Ordering Number Values in a List Containing Strings and Numbers
[英]Get minimum and maximum values from a list containing both strings and numbers in python and then replace the strings with these values?
如问题中所述,我有一个这样的列表:
l = ['a', 'a', 'a', 200.0, 1.0, -55.4, 6.5, 'b', 'b', 'b']
我想从该列表中获取minimum
和maximum
,以便将字符串 'a' 替换为minimum
和 'b' 替换为maximum
。 我的 output 必须是这样的:
l = [-55.4, -55.4, -55.4, 200.0, 1.0, -55.4, 6.5, 200.0, 200.0, 200.0]
我可以通过使用while
循环创建另一个列表来仅存储数值,然后对这个新列表进行排序并将minimum
(作为这个新列表的0th
个元素)传递给一个变量和max
(作为最后一个元素)到另一个变量。
由于我的列表包含的元素比我作为示例编写的要多得多,我想知道是否有更有效的方法来做到这一点。
非常感谢:)
l = ["a", "a", "a", 200.0, 1.0, -55.4, 6.5, "b", "b", "b"]
mx = max((v for v in l if isinstance(v, float)))
mn = min((v for v in l if isinstance(v, float)))
out = [{"a": mn, "b": mx}.get(v, v) for v in l]
print(out)
印刷:
[-55.4, -55.4, -55.4, 200.0, 1.0, -55.4, 6.5, 200.0, 200.0, 200.0]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.