关于获取符合条件的字符串& 从满足条件的位置开始新的搜索的问题。
我有一个有序的城镇列表&我想为每个字母提取一个字符串,每个新的搜索从前一个搜索的位置开始。
最好的一般方法是什么?对于'A'之后的字符串,我是否需要比较结果的索引或创建一个字典? 例如,在Python中,我是否可以从列表中的特定位置继续搜索?
# Ordered list of towns
towns = ['The Gord', 'Wilna Geo', 'The Framd', 'The Fild', 'Iron Geo', 'Brim Ness', 'RRH Saxa Vord', 'Houll', 'Skaw', 'Norwick', 'Burrafirth', 'Saxa Vord']
alpha = []
for elem in towns[:]:
if str(elem).startswith("A"):
alpha.append(elem)
break
# new search starting from position where 'A' was true; return next value starting with 'B' -
if str(elem).startswith("B"):
alpha.append(elem)
# Continue with the rest of the letters
return alpha
你会如何构思我想要实现的东西?
除了Python,还有什么框架可以更适合我的需求,比如SQL、R、其他?
我相信你可以做这样的事情。
towns = ['The Gord', 'Wilna Geo', 'The Framd', 'The Fild', 'Iron Geo', 'Brim Ness', 'RRH Saxa Vord', 'Houll', 'Skaw', 'Norwick', 'Burrafirth', 'Saxa Vord']
alpha = []
current_letter = "A"
for elem in towns:
if elem[0] == current_letter:
alpha.append(elem)
current_letter = chr(ord(current_letter) + 1)
当一个元素被发现时,如果以 current_letter
, current_letter
改为下一个可能的字母。
请注意我如何改变了 startswith
到 [0]
因为我们只检查 elem
以一个字母开头)。) 我还删除了不必要的 [:]
对城镇。最后: elem
代替 str(elem)
(这已经是一个 str
).