(list(dep1)).sort() 这种写法对不对,有没有更好的写法
时间: 2023-08-08 18:09:51 浏览: 37
`(list(dep1)).sort()` 这种写法是可以的,因为它先将 `dep1` 转换为列表,然后对这个列表进行排序,最终返回的是排序后的列表,但是这个排序操作并不会改变原来的 `dep1`。
不过这种写法比较冗长,可以改为 `sorted(dep1)` 或者 `dep1.sort()`。
`sorted(dep1)` 会返回排序后的新列表,而 `dep1.sort()` 则是在原列表上进行排序,两种写法都可以。需要注意的是,如果想要按照某个特定的规则进行排序,可以使用 `key` 参数。例如,按照绝对值大小进行排序,可以这样写:
```
sorted_dep1 = sorted(dep1, key=abs)
```
或者
```
dep1.sort(key=abs)
```
这样就可以按照绝对值大小对列表进行排序了。
相关问题
list(dep1).sort() 这种写法对不对,有其他的代替么
`list(dep1).sort()` 这种写法是有问题的。`list(dep1)` 表示将 dep1 转换成列表,然后 `sort()` 是对这个列表进行排序,但是这个排序操作并不会改变原来的 dep1。因为 `sort()` 方法是在列表上直接进行排序,而这个列表是新建的临时列表。
正确的写法应该是直接对 dep1 进行排序,例如:
```
dep1.sort()
```
这样就可以直接对原列表 dep1 进行排序了。
另外,还可以使用 `sorted()` 函数对列表进行排序,并且它返回的是一个新的已排序的列表,例如:
```
sorted_dep1 = sorted(dep1)
```
这样,原列表 dep1 并不会被改变,而是返回一个新的已排序的列表 sorted_dep1。
需要注意的是,`sorted()` 函数和 `sort()` 方法都可以接受一个关键字参数 `key`,用于指定排序的关键字。例如,如果要按照列表中元素的绝对值大小进行排序,可以这样写:
```
dep1.sort(key=abs)
```
或者
```
sorted_dep1 = sorted(dep1, key=abs)
```
这样就可以按照绝对值的大小对列表进行排序了。
make: *** No rule to make target 'dep'. Stop.
这个错误通常是因为Makefile文件中没有定义“dep”目标。Makefile文件是一个文本文件,用于定义如何编译和链接程序。如果你没有定义一个名为“dep”的目标,那么当你运行“make dep”命令时,就会出现这个错误。
要解决这个问题,你可以检查Makefile文件,看看是否缺少了“dep”目标的定义。如果确实缺少了,那么你需要添加一个名为“dep”的目标,用于生成程序的依赖关系。
如果你不知道如何编写Makefile文件,可以在网上查找相关的教程和示例,或者使用现成的工具来自动生成Makefile文件。例如,CMake是一个常用的工具,它可以根据你的源代码自动生成Makefile文件。