在特定 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']
我试图在列表中找到介于下限和上限之间的特定字符串(这些是用户输入值)。例如,假设我有一个列表,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']