gpt4 book ai didi

Python字符串比较最小/最大str

转载 作者:行者123 更新时间:2023-12-01 01:10:39 24 4
gpt4 key购买 nike

我有一个日期字符串列表。例如,

x = ['2000-01-01', '2001-01-01', '2002-01-01']

我想使用可选的下限和上限来过滤这些字符串。我可以使用 if 语句来实现它。例如,

def filter_str(x, lower_bound = '', upper_bound = ''):
if lower_bound:
x = [y for y in x if y > lower_bound]
if upper_bound:
x = [y for y in x if y < upper_bound]
return x

我想知道是否有更优雅的方法来做到这一点?

<小时/>

我发现空字符串 ('') 比任何非空字符串都小。是否有一个字符串比所有非空字符串都大?

这样,我可以将 filter_str 简化为

def filter_str(x, lower_bound = '', upper_bound = LARGEST_STR):
return [y for y in x if y > lower_bound and y < upper_bound]

对于我的情况,列表中的所有字符串都以数字开头,因此我猜 'a' 比列表中的任何字符串都大。但是,如果我的列表对于任何类型的字符串都更通用,那么是否存在最大的字符串?

谢谢!

最佳答案

内置 filter 函数将 None 视为始终返回 True 的“函数”。

from functors import partial
from operators import lt, gt

def filter_dates(x, lower_bound=None, upper_bound=None):
lb = None if lower_bound is None else partial(lt, lower_bound)
ub = None if upper_bound is None else partial(gt, upper_bound)

return filter(lb, filter(ub, x))

(请注意,这适用于字符串或日期对象;只需传递适当类型的下限和上限。)

关于Python字符串比较最小/最大str,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54894172/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com