python函数的使用
我是python/编程的新手。这里有一个关于在python中使用函数的问题 如果我有一个名为myList的列表python函数的使用,python,Python,我是python/编程的新手。这里有一个关于在python中使用函数的问题 如果我有一个名为myList的列表 (a) 如果要对其排序,我将使用myList.sort() (b) 如果临时对其进行排序,我将使用sorted(myList) 请注意使用两个函数之间的区别,一个是将函数应用于myList,另一个是将myList用作函数的参数 我的问题是,每次我使用函数时 我如何知道该函数是否应该用作应用于对象的“操作”(在(a)中),或者 如果对象作为参数传递给函数,(在(b)中) 我对此困
- (a) 如果要对其排序,我将使用
myList.sort()
- (b) 如果临时对其进行排序,我将使用
sorted(myList)
myList
,另一个是将myList
用作函数的参数
我的问题是,每次我使用函数时
- 我如何知道该函数是否应该用作应用于对象的“操作”(在(a)中),或者
- 如果对象作为参数传递给函数,(在(b)中)李>
sort()
是一个就地函数,而sorted()
将返回一个已排序的列表,但不会就地更改变量。以下说明了区别:
l = [1, 2, 1, 3, 2, 4]
l.sort()
print(l) --returns [1, 1, 2, 2, 3, 4]
l = [1, 2, 1, 3, 2, 4]
new_l = sorted(l)
print(new_l) -- returns [1, 1, 2, 2, 3, 4]
print(l) -- [1, 2, 1, 3, 2, 4]
如果要保持列表的原始顺序,请使用sorted
,否则可以使用sort()
sort()
是一个就地函数,而sorted()
将返回一个已排序的列表,但不会就地更改变量。以下说明了区别:
l = [1, 2, 1, 3, 2, 4]
l.sort()
print(l) --returns [1, 1, 2, 2, 3, 4]
l = [1, 2, 1, 3, 2, 4]
new_l = sorted(l)
print(new_l) -- returns [1, 1, 2, 2, 3, 4]
print(l) -- [1, 2, 1, 3, 2, 4]
如果要保持列表的原始顺序,请使用
sorted
,否则可以使用sort()
在list.sort和sorted(list)之间有两大区别
请检查一下 list.sort和sorted(list)之间有两大区别
列表
类型的方法
诸如sorted
之类的函数适用于多种特定类型。例如,您可以获得已排序的列表
、集合
,甚至是临时生成器。只有输出是具体的(您总是会得到一个新的列表
),而不是输入
sort
等方法仅适用于保存它们的类型。例如,有一个list.sort
方法,但没有dict.sort
方法。即使对于方法具有相同名称的类型,切换它们也是不明智的-例如,set.copy
不能用于复制dict
区分这两者的一个简单方法是函数位于常规名称空间中,例如模块。另一方面,方法只存在于类及其实例中
sorted # function
list.sort # method
import math
math.sqrt # function
math.pi.as_integer_ratio # method
按照惯例,Python通常使用函数执行不可变操作,使用方法执行变异操作。例如,sorted
提供了一个新的排序列表,而旧的列表保持不变my_list.sort()
对现有列表进行排序,不提供新列表
my_list = [4, 2, 3, 1]
print(sorted(my_list)) # prints [1, 2, 3, 4]
print(my_list) # prints [4, 2, 3, 1] - unchanged by sorted
print(my_list.sort()) # prints None - no new list produced
print(my_list) # prints [1, 2, 3, 4] - changed by sort
仅是一个函数-是list
类型的方法
诸如sorted
之类的函数适用于多种特定类型。例如,您可以获得已排序的列表
、集合
,甚至是临时生成器。只有输出是具体的(您总是会得到一个新的列表
),而不是输入
sort
等方法仅适用于保存它们的类型。例如,有一个list.sort
方法,但没有dict.sort
方法。即使对于方法具有相同名称的类型,切换它们也是不明智的-例如,set.copy
不能用于复制dict
区分这两者的一个简单方法是函数位于常规名称空间中,例如模块。另一方面,方法只存在于类及其实例中
sorted # function
list.sort # method
import math
math.sqrt # function
math.pi.as_integer_ratio # method
按照惯例,Python通常使用函数执行不可变操作,使用方法执行变异操作。例如,sorted
提供了一个新的排序列表,而旧的列表保持不变my_list.sort()
对现有列表进行排序,不提供新列表
my_list = [4, 2, 3, 1]
print(sorted(my_list)) # prints [1, 2, 3, 4]
print(my_list) # prints [4, 2, 3, 1] - unchanged by sorted
print(my_list.sort()) # prints None - no new list produced
print(my_list) # prints [1, 2, 3, 4] - changed by sort
阅读函数的文档。
myList.sort()
是一种方法,但是sorted(myList)
是一个函数列表。sort
和sorted
是两个完全不同的东西。一个是方法,另一个是内置函数。它不像任何函数可以用作foo(x)
或x.foo()
。请阅读函数的文档。myList.sort()
是一种方法,但sorted(myList)
是一个函数列表。sort
和sorted
是两个完全不同的东西。一个是方法,另一个是内置函数。它不像任何函数可以用作foo(x)
或x.foo()
。