Первый строительный блок: подстрока.
Вы можете использовать in
для проверки:
>>> 'rest' in 'resting'
True
>>> 'sing' in 'resting'
False
Далее мы собираемся выбрать наивный метод создания нового список. Мы добавим элементы по одному в новый список, проверяя, являются ли они подстрокой или нет.
def substringSieve(string_list):
out = []
for s in string_list:
if not any([s in r for r in string_list if s != r]):
out.append(s)
return out
Вы можете ускорить ее, сортируя, чтобы уменьшить количество сравнений (в конце концов, более длинная строка никогда не может быть подстрокой строки более короткой / равной длины):
def substringSieve(string_list):
string_list.sort(key=lambda s: len(s), reverse=True)
out = []
for s in string_list:
if not any([s in o for o in out]):
out.append(s)
return out
На данный момент (январь 2019 г.) нет возможности выполнять развертывание облачных функций, как вы описали. Доступна и доступна только последняя версия облачной функции, и вы не можете переключать трафик между версиями, как это было бы с App Engine. Обратите внимание, что уже есть открытый запрос , который включает это.