如果之前已经回答过,请道歉,但我在这里找不到类似的问题.
我是Python的新手,我想创建的内容如下:
list1 = []
list2 = []
results = [list1, list2]
Run Code Online (Sandbox Code Playgroud)
这段代码工作得非常好,但我想知道是否有更快的方法在一行中完成此操作.
我尝试了以下,但没有用,但我希望它能说明我所追求的事情:
result = [list1[], list2[]]
Run Code Online (Sandbox Code Playgroud)
另外,就复杂性而言,将它放在一条线上真的会有所不同吗?或者在两种情况下都是三项任务?
我正在编写一个简单的游戏,其中使用枚举CommandManager来存储有关可能的命令以及每个命令的作用的信息。该枚举的主要目的是能够打印出可用命令的菜单,以及用于检查输入并执行与该输入相关的操作。我的问题在于第二次使用,我使用 switch 语句来根据用户的输入确定用户想要执行的操作。当我尝试使用 Enum 的属性(通过 getter 方法)作为 case 标签时,出现编译错误。提供的错误消息是case expressions must be constant expressions。鉴于 的属性CommandManager被声明为最终的,我认为枚举的属性根本不能在 switch 语句中使用是正确的吗?如果是这样,为什么?
下面包含代码的简化版本,以防我这边出现错误。
方法代码:
void interpretInput() {
String command = input.getInput();
if (command.length() == 2) {
switch (command) {
case CommandManager.MAINMENU.getCommand(): goToMainMenu();
break;
case CommandManager.NEWGAME.getCommand(): startNewGame();
break;
case CommandManager.LISTGAMES.getCommand(): listSavedGames();
break;
case CommandManager.EXITGAME.getCommand(): exitGame();
break;
case CommandManager.HELPMENU.getCommand(): listAllCommands();
break;
}
}
}
Run Code Online (Sandbox Code Playgroud)
枚举代码:
public enum CommandManager {
NEWGAME("!n", "New game"),
MAINMENU("!m", "Go to main menu"),
EXITGAME("!q", "Exit Battleships"),
LISTGAMES("!g", …Run Code Online (Sandbox Code Playgroud)