(Python) Сортировка фильма по продажам с использованием файлового ввода и вывода

Он называется открытым общим , и да, Windsor действительно поддерживает это.

 container.Register(Component
             .For(typeof(IAdapterFactory<,>))
             .ImplementedBy(typeof(AdapterFactory<,>))
             .LifestylePerWebRequest());
0
задан T. Kim 11 March 2019 в 14:46
поделиться

4 ответа

Похоже, вы хотите иметь возможность сортировать список списков по элементу во внутреннем списке (продажи). Может быть, вы могли бы попробовать что-то вроде этого:

movie_list.sort(key=lambda x: x[1])

Это должно сделать это

0
ответ дан Benny 11 March 2019 в 14:46
поделиться

Я предлагаю вам занятия. В вашем случае вам нужен один класс с одной строкой и одним целым числом. С этого момента все пойдет легче. У вас будет только один массив объектов, тогда вы сможете играть с объектами так, как вам нравится (сортировать их, вставлять, вставлять и т. Д.).

0
ответ дан filipbekic01 11 March 2019 в 14:46
поделиться

Как и другие уже упомянутые пользователи, вы можете использовать сортировку в сочетании с лямбда-функцией для сортировки по второму элементу кортежа. Чтобы не разбивать ваш текстовый файл на вкладки и заменять все символы новой строки, я бы предложил использовать 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')
0
ответ дан SerAlejo 11 March 2019 в 14:46
поделиться

movie_list.sort(key=lambda x: x[1])

Как пример здесь: Сортировка кортежей на основе второго параметра

0
ответ дан eatmeimadanish 11 March 2019 в 14:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: