在特定 ascii 值之间的列表中查找字符串 - Python

Find strings in a list that between specific ascii values - Python

我试图在列表中找到介于下限和上限之间的特定字符串(这些是用户输入值)。例如,假设我有一个列表,states = ['OH'、'NJ'、'NY'、'SD'、'NH'、'WI']。用户输入下限 = 'NJ' 和上限 = 'SD'。我希望代码输出 ['OH'、'NJ'、'NY'、'SD'].

我认为我可以做的是将每个字符串分成自己的单独字符。

所以对于用户输入,我写了这个以便添加输入的 ascii 值。在这种情况下,每个字符都是从输入中添加的。

a = ord(lowerbound[0].lower()) + ord(lowerbound[1].lower())
b = ord(upperbound[0].lower()) + ord(upperbound[1].lower()) 

然后我尝试了这个来检索列表中用户输入之间的元素。首先,它将列表中的所有元素转换为它们添加的 ascii 值。但它没有给我想要的输出。

s_lst = []
lst = []
for s in states:
    x = ord(s[0].lower()) + ord(s[1].lower())
    lst.append(x)
    for i in lst:
        if (b >= i >= a):
            s_lst.append(i)
print(s_lst)

使用列表理解来过滤列表:

states = ['OH', 'NJ', 'NY', 'SD', 'NH', 'WI']

lowerbound = 'NJ'
upperbound = 'SD'

>>> [state for state in states if lowerbound<=state<=upperbound]
['OH', 'NJ', 'NY', 'SD']