python 技巧让代码更好
一些小技巧可以让python的代码变得简洁一、if 判断条件的简写 常规写法:
condition = True if condidtion: x = 1 else: x = 0 print(x)
优化后:
condition = True x = 1 if condition else 0; print(x)
二、数据格式化
num1 = 10000000000 num2= 100000000 total = num1 + num2 print(total) #结果是:10100000000 print(f'{total:,}') #结果是:10,100,000,000
三、文件读取
常规
f = open('text.txt', 'r') file_contents = f.read() f.close()words = file_contents.split(' ') word_count = len(words) print(word_count)
优化后
with open('text.txt', 'r') as f: file_contents = f.read() words = file_contents.split(' ') word_count = len(words) print(word_count)四、带序号的列表遍历
names = ['Rick', 'Jack', 'Sean', 'Summer'] index = 0 for name in names: print(index, name) index +=1 #运行结果 #0 Rick #1 Jack #2 Sean #3 Summer优化后:
names = ['Rick', 'Jack', 'Sean', 'Summer'] for index, name in enumerate(names, start=1): print(index, name) # 打印结果 #1 Rick #2 Jack #3 Sean #4 Summer
五、多列表之间的映射
names = ['Peter Parker', 'Clark Kent', 'Wade Wilson', 'Bruce Wayne'] heroes = ['Spiderman', 'Superman', 'Deadpool', 'Batman'] for index, name in enumerate(names): hero = heroes[index] print(f'{name} is actually {hero}') #运行结果 #Peter Parker is actually Spiderman #Clark Kent is actually Superman #Wade Wilson is actually Deadpool #Bruce Wayne is actually Batman优化:
names = ['Peter Parker', 'Clark Kent', 'Wade Wilson', 'Bruce Wayne'] heroes = ['Spiderman', 'Superman', 'Deadpool', 'Batman'] universes = ['Marvel', 'DC', 'Marvel', 'DC'] for index, name, universe in zip(names,heroes,universes): print(f'{name} is actually {hero} from {universe}') #运行结果: #Spiderman is actually Batman from Marvel #Superman is actually Batman from DC #Deadpool is actually Batman from Marvel #Batman is actually Batman from DC