Это самая быстрая версия, в которой не использует регулярные выражения .
replaceAll = function(string, omit, place, prevstring) {
if (prevstring && string === prevstring)
return string;
prevstring = string.replace(omit, place);
return replaceAll(prevstring, omit, place, string)
}
It почти в два раза быстрее, чем метод split и join.
Как указано в комментарии здесь, это не будет работать, если ваша переменная omit
содержит place
, как в: replaceAll("string", "s", "ss")
, потому что он всегда сможет заменить другое вхождение слова.
Существует еще один jsperf с вариантами на моей рекурсивной замене, которые идут еще быстрее ( http://jsperf.com/replace-all- vs-split-join / 12 )!
Вы можете использовать параметр key
для list.sort()
:
my_list.sort(key=lambda x: x[1])
или, немного быстрее,
my_list.sort(key=operator.itemgetter(1))
(Как и в любом модуле, вы будете необходимо import operator
, чтобы иметь возможность использовать его.)
def findMaxSales(listoftuples):
newlist = []
tuple = ()
for item in listoftuples:
movie = item[0]
value = (item[1])
tuple = value, movie
newlist += [tuple]
newlist.sort()
highest = newlist[-1]
result = highest[1]
return result
movieList = [("Finding Dory", 486), ("Captain America: Civil
War", 408), ("Deadpool", 363), ("Zootopia", 341), ("Rogue One", 529), ("The Secret Life of Pets", 368), ("Batman v Superman", 330), ("Sing", 268), ("Suicide Squad", 325), ("The Jungle Book", 364)]
print(findMaxSales(movieList))
output -> Rogue One
И если вы используете python 3.X, вы можете применить функцию sorted
в списке. Это просто дополнение к ответу, который @Sven Marnach дал выше.
# using *sort method*
mylist.sort(lambda x: x[1])
# using *sorted function*
sorted(mylist, key = lambda x: x[1])