RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题

问题[сортировка]

Martin Hope
Андрей
Asked: 2022-08-12 02:50:15 +0000 UTC

按具有许多参数的 lambda 排序

  • 1

您需要对元组列表进行排序。底线是,例如,如果数字相等,那么您需要按字典顺序排序。我看到了类似的东西,但我不明白它是如何工作的。

sorted(domens.items(), key=lambda x: (x[1], x[0])):

据我了解,lambda 中的元组是在相等的情况下选择排序元素。这是要排序的数据:

data = [('outlook.com', 34), ('list.ru', 29), ('yahoo.com', 36), ('bk.ru', 38), ('mail.ru', 38), ('rambler.ru', 24), ('iCloud.com', 29), ('internet.ru', 32), ('inbox.ru', 31), ('yandex.ru', 34), ('gmail.com', 44), ('aol.com', 31)]
python сортировка
  • 1 个回答
  • 35 Views
Martin Hope
Василий Балин
Asked: 2022-07-21 15:06:45 +0000 UTC

Excel 如何“理解”在哪个范围内排序?

  • 1

我需要按四列对表格进行排序。经常。这就是我写宏的原因。我写的那个(我不会在这里给出它的代码,因为:1.这个问题与他无关;2.我不想“夸大”这个问题),没有工作到最后。出于这个原因,我通过在编辑组中找到排序和过滤工具并单击自定义排序,使用宏记录器录制了一个宏。在现有的基础上添加了三个级别,并选择了我需要的列。这是输出:

Sub macro_record()
    ActiveWorkbook.Worksheets("Sheet1").AutoFilter.Sort. _
        SortFields.Clear
    ActiveWorkbook.Worksheets("Sheet1").AutoFilter.Sort. _
        SortFields.Add Key:=Range("A2:A1000000"), SortOn:=xlSortOnValues, Order:= _
        xlAscending, DataOption:=xlSortNormal
    ActiveWorkbook.Worksheets("Sheet1").AutoFilter.Sort. _
        SortFields.Add Key:=Range("C2:C1000000"), SortOn:=xlSortOnValues, Order:= _
        xlAscending, DataOption:=xlSortNormal
    ActiveWorkbook.Worksheets("Sheet1").AutoFilter.Sort. _
        SortFields.Add Key:=Range("E2:E1000000"), SortOn:=xlSortOnValues, Order:= _
        xlAscending, DataOption:=xlSortTextAsNumbers
    ActiveWorkbook.Worksheets("Sheet1").AutoFilter.Sort. _
        SortFields.Add Key:=Range("G2:G1000000"), SortOn:=xlSortOnValues, Order:= _
        xlAscending, DataOption:=xlSortNormal
    
    With ActiveWorkbook.Worksheets("Sheet1").AutoFilter. _
        Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub

问题是:Excel 如何“理解”要排序的范围?换句话说,程序在哪一行代码中为计算机提供了要排序的范围地址?

excel сортировка
  • 1 个回答
  • 63 Views
Martin Hope
Anton Kuznetsov
Asked: 2022-07-16 00:49:47 +0000 UTC

c#对嵌套列表进行排序,如何?

  • 1

有一个嵌套列表

public Dictionary<dynamic, Dictionary<string, dynamic>> Data = new();

以下数据被动态添加到其中:

Data .Add(ID, new Dictionary<string, dynamic> {
  { "Addr", Addr },
  { "Pos", Pos  },
  { "Description", Description },
  { "Number", Number  }
});

结果,我们得到一个近似列表:

Data["adx01"][{"Addr":5},{"Pos":100},{"Description":"Описание1"},{"Number":44}];
Data["vdx11"][{"Addr":2},{"Pos":45},{"Description":"Описание2"},{"Number":12}];
Data["ydx50"][{"Addr":3},{"Pos":67},{"Description":"Описание3"},{"Number":71}];
Data["zdx31"][{"Addr":10},{"Pos":9},{"Description":"Описание4"},{"Number":33}];

我需要按“数字”字段对其进行排序,使其看起来像这样:

Data["ydx50"][{"Addr":3},{"Pos":67},{"Description":"Описание3"},{"Number":71}];
Data["adx01"][{"Addr":5},{"Pos":100},{"Description":"Описание1"},{"Number":44}];
Data["zdx31"][{"Addr":10},{"Pos":9},{"Description":"Описание4"},{"Number":33}];
Data["vdx11"][{"Addr":2},{"Pos":45},{"Description":"Описание2"},{"Number":12}];

什么方法可以做到这一点?

答案:aepot:Data=Data.OrderBy(pair => (int)pair.Value["Number"]).ToDictionary(pair => pair.Key, pair => pair.Value)

c# сортировка
  • 1 个回答
  • 57 Views
Martin Hope
YuriiS
Asked: 2022-09-06 05:17:56 +0000 UTC

排序失败

  • 0

我有这个任务:

我得到一个书名列表作为输入。分发书籍,使每个书架上的书籍数量大致相同。书籍应按字母顺序从第一个书架到最后一个书架排序。架子的数量是恒定的 5 件。归还整理在书架上的书籍

private static List<ArrayList<Book>> getShelvesOfBooks(List<Book> books){

        List<Book> sortedBooks = books.stream()
                                .sorted(Comparator.comparing(Book::getName))
                                .collect(Collectors.toList());

        List<ArrayList<Book>> shelves = new ArrayList<>();
        ArrayList<Book> shelf1 = new ArrayList<>();
        ArrayList<Book> shelf2 = new ArrayList<>();
        ArrayList<Book> shelf3 = new ArrayList<>();
        ArrayList<Book> shelf4 = new ArrayList<>();
        ArrayList<Book> shelf5 = new ArrayList<>();

        for (int i = 0; i < sortedBooks.size(); i++) {
            if (i % 5 == 0){
                shelf1.add(sortedBooks.get(i));
            }
            if (i % 5 == 1){
                shelf2.add(sortedBooks.get(i));

            }
            if (i % 5 == 2){
                shelf3.add(sortedBooks.get(i));

            }
            if (i % 5 == 3){
                shelf4.add(sortedBooks.get(i));

            }
            if (i % 5 == 4){
                shelf5.add(sortedBooks.get(i));

            }
        }

        shelves.add(shelf1);
        shelves.add(shelf2);
        shelves.add(shelf3);
        shelves.add(shelf4);
        shelves.add(shelf5);

        return shelves;
    }

在这种情况下,书籍按字母顺序排序,但最终以错误的顺序出现在书架上。

shelf1 = [Book[name='Java в действии'], Book[name='Повесть о настоящем человеке']]
shelf2 = [Book[name='Аэропорт'], Book[name='Сказки']]
shelf3 = [Book[name='Война и мир'], Book[name='Собака Баскервилей']]
shelf4 = [Book[name='Игра престолов'], Book[name='Том Сойер']]
shelf5 = [Book[name='Мастер и Маргарита'], Book[name='Цитадель']]

排序后如何下订单

shelf1 = [Book[name='Java в действии'], [name='Аэропорт']]
shelf2 = [Book[name='Война и мир'], Book[name='Игра престолов']]
shelf3 = [Book[name='Мастер и Маргарита'], Book[name='Повесть о настоящем человеке']]
...

动作的算法会有所不同。可能有必要在将书插入书架之前进行动态分类。我只是不知道如何做到这一点,而且每个书架上仍然有大约相同数量的书籍。当书的数量不是 5 的倍数时,必须从第一个书架开始添加。也就是说,如果有 7 本书,那么第一层和第二层书架上会有两本书,其他书架上有一本。

java сортировка
  • 3 个回答
  • 81 Views
Martin Hope
Ярослав Саух
Asked: 2022-09-04 01:46:34 +0000 UTC

通过快速排序对结构数组进行排序

  • 0

有一个由 3 个元素组成的结构数组,还有一个快速排序功能(也在代码中),但我不知道如何按价格字段对结构数组进行排序。

#include <stdio.h>
#include <stdlib.h>

struct book
{
    char title[15];
    char author[15];
    int price;
    int pages;
};
void quicksort(int* mas, int first, int last)
{
    int mid, count;
    int f = first, l = last;
    mid = mas[(f + l) / 2]; //вычисление опорного элемента
    do
    {
        while (mas[f] < mid) f++;
        while (mas[l] > mid) l--;
        if (f <= l) //перестановка элементов
        {
            count = mas[f];
            mas[f] = mas[l];
            mas[l] = count;
            f++;
            l--;
        }
    } while (f < l);
    if (first < l) quicksort(mas, first, l);
    if (f < last) quicksort(mas, f, last);
}

int main()
{
    struct book libry[3];
    int i;
    system("chcp 1251");
    system("cls");
    for (i = 0; i < 3; i++)
    {
        printf("Введите название %d книги : ", i + 1);
        gets_s(libry[i].title);
        printf("Введите автора %d книги : ", i + 1);
        gets_s(libry[i].author);
        printf("Введите цену %d книги : ", i + 1);
        scanf_s("%d", &libry[i].price);
        getchar();
        printf("Введіть кількість сторінок %d-ої книги : ", i + 1);
        scanf_s("%d", &libry[i].pages);
        getchar();
    }
    for (i = 0; i < 3; i++)
    {
        printf("\n %d. %s ", i + 1, libry[i].author);
        printf("%s %d %d", libry[i].title, libry[i].price, libry[i].pages);
    }
    getchar();
    return 0;
}
c сортировка
  • 1 个回答
  • 42 Views

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5