假设我有一个清单.
temp = ['A', 'B', 'A', 'B', 'A', 'B']
Run Code Online (Sandbox Code Playgroud)
我正在寻找一种方法来加入里面的字符串计数.
预期产出:
['A_1', 'B_1', 'A_2', 'B_2', 'A_3', 'B_3']
Run Code Online (Sandbox Code Playgroud)
我能够通过使用列表解析来解决它,但我正在寻找一种方法,我不必指定列表[1, 1, 2, 2, 3, 3].可能吗?
[j + "_" + str(i) for i, j in zip([1, 1, 2, 2, 3, 3], temp)]
Run Code Online (Sandbox Code Playgroud) 我能够使用这种方式为素数编写一个函数
def isprime(num):
if num > 1:
for i in range(2, num):
if num % i == 0:
return False
return True
%timeit [i for i in range(1000) if isprime(i)]
7.94 ms ± 273 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
Run Code Online (Sandbox Code Playgroud)
然后我发现有一种使用平方根来写这个的更快的方法,但我无法理解它的工作原理。任何人都可以用更简单的术语解释这段代码以及它为什么有效?
def isprime(num):
if num > 1:
for i in range(2, int(num ** 0.5) + 1):
if num % i == 0:
return False
return True
%timeit [i for i in range(1000) …Run Code Online (Sandbox Code Playgroud)