这是我的清单。
[('a', 12), ('c', 4), ('b', 3), ('e', 6), ('d', 5), ('g', 50), ('f', 30),]
Run Code Online (Sandbox Code Playgroud)
对该列表进行排序的结果将是。
[('g', 50), ('f', 30), ('a', 12), ('e', 6), ('d', 5), ('c', 4), ('b', 3)]
Run Code Online (Sandbox Code Playgroud)
我尝试使用:
x = sorted(alpha_items, key=lambda x: x[1],)
Run Code Online (Sandbox Code Playgroud)
但是我需要扭转它。
我可以添加另一个密钥吗?
我已经构建了一个如下所示的book结构:
typedef struct _book{
char name[NAME_LENGTH];
char authors[AUTHORS_NAME_LENGTH];
char publisher[PUBLISHER_NAME_LENGTH];
char genre[GENRE_LENGTH];
int year;
int num_pages;
int copies;
}book;
Run Code Online (Sandbox Code Playgroud)
我正在尝试定义一个图书馆,这是一个书籍阵列,所以稍后我可以在图书馆中存放另一个功能的图书.当像这样定义库时,内存写入/读取有问题library[BOOK_NUM],所以我决定分配.
问题是,它只允许我在main函数内部进行分配.当我写这行时:
book *library = (book*)malloc(BOOK_NUM*sizeof(book));
Run Code Online (Sandbox Code Playgroud)
在main()它之外给我一个错误:
IntelliSense:常量表达式中不允许函数调用
错误C2099:初始化程序不是常量
但如果我将上面的线移到里面main()就行了.这是为什么?
另外,定义数组的更好方法是什么,以便以后可以用其他函数更改它?