Python 字符串格式的区别
Python difference between string formatting
长话短说。有人可以向我解释一下吗,简单的代码行可以和我写的所有 for 循环做同样的事情?
def z1(code1, code2):
parse = lambda x: int(x.replace('-', ''))
code1, code2 = parse(code1), parse(code2)
print(code1, code2)
return ["%02d-%03d" % divmod(x, 1000) for x in range(code1, code2+1)] <---
这是我的解决方案:
def z2(code1, code2):
codes = []
parse = lambda x: int(x.replace('-', ''))
code1, code2= parse(code1), parse(code2)
for x in range(code1, code2+1):
x = str(x)
a = x[0:2]
b = x[2:6]
c = a+"-"+b
codes.append(f"{c}")
return codes
["%02d-%03d" % divmod(x, 1000) for x in range(code1, code2+1)]
这称为列表理解,允许编写比创建空列表然后在循环中追加更简洁的代码。考虑以下示例
squares = []
for i in range(5):
squares.append(i**2)
相当于
squares = [i**2 for i in range(5)]
长话短说。有人可以向我解释一下吗,简单的代码行可以和我写的所有 for 循环做同样的事情?
def z1(code1, code2):
parse = lambda x: int(x.replace('-', ''))
code1, code2 = parse(code1), parse(code2)
print(code1, code2)
return ["%02d-%03d" % divmod(x, 1000) for x in range(code1, code2+1)] <---
这是我的解决方案:
def z2(code1, code2):
codes = []
parse = lambda x: int(x.replace('-', ''))
code1, code2= parse(code1), parse(code2)
for x in range(code1, code2+1):
x = str(x)
a = x[0:2]
b = x[2:6]
c = a+"-"+b
codes.append(f"{c}")
return codes
["%02d-%03d" % divmod(x, 1000) for x in range(code1, code2+1)]
这称为列表理解,允许编写比创建空列表然后在循环中追加更简洁的代码。考虑以下示例
squares = []
for i in range(5):
squares.append(i**2)
相当于
squares = [i**2 for i in range(5)]