Он называется открытым общим , и да, Windsor действительно поддерживает это.
container.Register(Component
.For(typeof(IAdapterFactory<,>))
.ImplementedBy(typeof(AdapterFactory<,>))
.LifestylePerWebRequest());
Похоже, вы хотите иметь возможность сортировать список списков по элементу во внутреннем списке (продажи). Может быть, вы могли бы попробовать что-то вроде этого:
movie_list.sort(key=lambda x: x[1])
Это должно сделать это
Я предлагаю вам занятия. В вашем случае вам нужен один класс с одной строкой и одним целым числом. С этого момента все пойдет легче. У вас будет только один массив объектов, тогда вы сможете играть с объектами так, как вам нравится (сортировать их, вставлять, вставлять и т. Д.).
Как и другие уже упомянутые пользователи, вы можете использовать сортировку в сочетании с лямбда-функцией для сортировки по второму элементу кортежа. Чтобы не разбивать ваш текстовый файл на вкладки и заменять все символы новой строки, я бы предложил использовать csv reader:
import csv
def sort_films(file_name, destination_file):
movie_list = []
with open(file_name, 'r') as csvfile:
# open csv file with delimiter '\t' to avoid splitting your string
csv_reader = csv.reader(csvfile, delimiter='\t')
for row in csv_reader:
movie_list.append((row[0], int(row[1]))) # cast string to int, so it gets sorted correctly
# sort your list by the second element of your tuple by using labda function
movie_list_sorted = sorted(movie_list, key=lambda x: x[1], reverse=True)
# save your sorted list into the destination_file
with open(destination_file,'w') as f:
for row in movie_list_sorted:
# while saving you can use an other format by replacing \t with whatever you want
f.write('%s\t%s\n' % (row[0], row[1]))
sort_films('top500.txt', 'sorted.txt')
movie_list.sort(key=lambda x: x[1])
Как пример здесь: Сортировка кортежей на основе второго параметра