Python에서 목록을 뒤집는 방법에는 일반적으로 슬라이싱 또는 reverse()
함수 호출이라는 두 가지 방법이 있습니다. 두 메서드 모두 목록을 뒤집을 수 있지만 내장 함수 reverse()
는 원래 목록을 변경하고 슬라이싱 메서드는 새 목록을 생성한다는 점에 유의하세요. reverse()
函数调用。这两种方法都可以反转列表,但需要注意的是内置函数 reverse()
会更改原始列表,而切片方法会创建一个新列表。
但是他们的表现呢?哪种方式更有效?让我们看一下下面的例子:
使用切片:
$ python -m timeit -n 1000000 -s 'import numpy as np' 'mylist=list(np.arange(0, 200))' 'mylist[::-1]' 1000000 loops, best of 5: 15.6 usec per loop
使用 reverse():
$ python -m timeit -n 1000000 -s 'import numpy as np' 'mylist=list(np.arange(0, 200))' 'mylist.reverse()' 1000000 loops, best of 5: 10.7 usec per loop
这两种方法都可以反转列表,但需要注意的是内置函数 reverse()
会更改原始列表,而切片方法会创建一个新列表。
显然,内置函数 reverse()
比列表切片方法更快!
用一行代码交换两个变量值是一种更具有 Python 风格的方法。
与其他编程语言不同,Python 不需要使用临时变量来交换两个数字或值。举个简单的例子:
variable_1 = 100 variable_2 = 500
要交换 variable_1
和 variable_2
的值,只需要一行代码。
variable_1, variable_2 = variable_2, variable_1
您也可以对字典使用相同的技巧:
md[key_2], md[key_1] = md[key_1], md[key_2]
该技巧可以避免多次迭代和复杂的数据转换,从而减少执行时间。
我们都喜欢创建自定义函数来执行我们自己的特定任务。然后使用 for
循环遍历这些函数,多次重复该任务。
但是,在 for
循环中使用函数需要更长的执行时间,因为每次迭代都会调用该函数。
相反,如果在函数内部实现了 for
循环,则该函数只会被调用一次。
为了更清楚地解释,让我们举个例子!
首先创建一个简单的字符串列表:
list_of_strings = ['apple','orange','banana','pineapple','grape']
创建两个函数,函数内部和外部都有 for
循环,从简单的开始。
def only_function(x): new_string = x.capitalize() out_putstring = x + " " + new_string print(output_string)
和一个带有循环的 for
函数:
def for_in_function(listofstrings): for x in list_of_strings: new_string = x.capitalize() output_string = x + " " + new_string print(output_string)
显然,这两个函数的输出是一样的。
然后,让我们比较一下,哪个更快?
如您所见,在函数内使用 for
循环会稍微快一些。
判断对象的类型时,使用 isinstance()
最好,其次是对象类型标识 id()
,对象值 type()
最后。
# Check if num an int type type(num) == type(0) # Three function calls type(num) is type(0) # Two function calls isinstance(num,(int)) # One function call
不要将重复操作的内容作为参数放在循环条件中,避免重复操作。
# Each loop the len(a) will be called while i < len(a): statement # Only execute len(a) once m = len(a) while i < m: statement
要在模块 X 中使用函数或对象 Y,请直接使用 from X import Y
而不是 import X; then X.Y
reverse()
는 원래 목록을 변경하고, 슬라이싱 메서드는 새 목록을 생성합니다. 🎜🎜분명히 내장 함수 reverse()
가 목록 분할 방법보다 빠릅니다! 🎜🎜두 값 교환🎜🎜한 줄의 코드로 두 변수 값을 교환하는 것이 더 Python적인 접근 방식입니다. 🎜🎜다른 프로그래밍 언어와 달리 Python은 두 숫자나 값을 교환하기 위해 임시 변수를 사용할 필요가 없습니다. 간단한 예: 🎜rrreee🎜 variable_1
과 variable_2
의 값을 교환하려면 한 줄의 코드만 필요합니다. 🎜rrreee🎜 사전에도 동일한 트릭을 사용할 수 있습니다. 🎜rrreee🎜 이 트릭은 여러 번의 반복과 복잡한 데이터 변환을 방지하여 실행 시간을 단축합니다. 🎜🎜함수 내부 반복🎜🎜우리 모두는 자신만의 특정 작업을 수행하기 위해 사용자 정의 함수를 만드는 것을 좋아합니다. 그런 다음 for
루프를 사용하여 이러한 함수를 반복하고 작업을 여러 번 반복합니다. 🎜🎜그러나 for
루프 내에서 함수를 사용하면 반복할 때마다 함수가 호출되므로 실행 시간이 더 오래 걸립니다. 🎜🎜반대로 for
루프가 함수 내부에 구현되면 함수는 한 번만 호출됩니다. 🎜🎜더 명확하게 설명하기 위해 예를 들어보겠습니다! 🎜🎜간단한 문자열 목록을 만드는 것으로 시작하세요. 🎜rrreee🎜함수 내부와 외부에 for
루프가 있는 두 개의 함수를 만들고 간단하게 시작하세요. 🎜rrreee🎜 및 루프가 있는 for
함수: 🎜rrreee🎜분명히 두 함수의 출력은 동일합니다. 🎜🎜그럼 어느게 더 빠른지 비교해볼까요? 🎜🎜🎜🎜보시다시피 함수 내부에 를 사용하세요 for
루프가 약간 더 빠릅니다. 🎜🎜함수 호출 횟수 줄이기🎜🎜객체 유형을 판단할 때 isinstance()
를 사용한 다음 객체 유형 식별자 id()
를 사용하는 것이 가장 좋습니다. , 그리고 객체 값 type ()
마지막으로. 🎜rrreee🎜반복 작업을 피하기 위해 반복 작업 내용을 루프 조건에 매개변수로 넣지 마세요. 🎜rrreee🎜모듈 X에서 함수나 개체 Y를 사용하려면 import X, X.Y
대신 from X import Y
를 직접 사용하세요. 이렇게 하면 Y를 사용할 때 조회 횟수가 한 번 줄어듭니다(인터프리터는 먼저 X 모듈을 조회한 다음 X 모듈 사전에서 Y를 조회할 필요가 없습니다). 🎜위 내용은 Python 프로그래밍을 위한 효율적인 기술은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!