1、对于用if bool 和 if len做判断,其实是很多余的。
def function(x):
if bool(x):
pass
if len(x) != 0:
pass
可以直接用对x进行判断就行:
def function(x):
if x:
pass
2、使用range和len组合语句有时候很多余:
def function():
a = [2, 4, 6]
for i in range(len(a)):
v = a[i]
print(v) # v依次输出2,4,6
很多老程序员,对于容器的访问都是通过容器下标访问的,但是python其实可以直接去遍历:
def function():
a = [2, 4, 6]
for v in a:
print(v) # v依次输出2,4,6
如果你想获取容器下标和对应的值,也可以使用enumerate操作:
def function():
a = [2, 4, 6]
for i, v in enumerate(a):
print(i, v)
再举个例子:
def function():
a = [2, 4, 6]
b = [3, 6, 9]
for i in range(len(b)):
v1 = a[i]
v2 = b[i]
print(v1, v2)
这样写还是比较危险的,现在是a和b长度一样,如果b的长度比a大,程序会报错,但是用zip就可能会避免该事故:
def function():
a = [2, 4, 6]
b = [3, 6, 9, 8]
for v1, v2 in zip(a, b):
print(v1, v2)
上面的程序会输出:
2 3
4 6
6 9
如果你仍然需要索引,也可以用enumerate:
def function():
a = [2, 4, 6]
b = [3, 6, 9, 8]
for i, (v1, v2) in enumerate(zip(a, b)):
print(i, v1, v2)
3、遍历字典的键:
def function():
d = {"a": 1, "b": 2, "c": 3}
for key in d.keys():
print(key) # 遍历输出a, b, c
其实你可以直接如下方式用,因为默认就带keys():
def function():
d = {"a": 1, "b": 2, "c": 3}
for key in d:
print(key) # 遍历输出a, b, c
当然你也可以使用list,使代码更清晰一点:
def function():
d = {"a": 1, "b": 2, "c": 3}
for key in list(d.keys()):
print(key) # 遍历输出a, b, c
此时其实keys()也是没必要存在的:
def function():
d = {"a": 1, "b": 2, "c": 3}
for key in list(d):
print(key) # 遍历输出a, b, c
4、不知道字典项方法:
def function():
d = {"a": 1, "b": 2, "c": 3}
for key in d:
value = d[key]
print(value)
如果你不知道字典项,你需要获取每个键,再去通过键去获取值。但是其实你可以直接去获取键和值:
def function():
d = {"a": 1, "b": 2, "c": 3}
for key, value in d.items():
print(key, value)
5、不使用元组解包:
def function():
mytuple= 1, 2
x = mytuple[0]
y = mytuple[1]
但是其实你可以直接对tuple进行解包:
def function():
mytuple = 1, 2
x, y = mytuple