PyN*_*bie 1 python comparison fortran coding-style
我从一开始就在Python中使用的一种做法是减少我创建的变量数量,与我在SAS或Fortran中尝试执行相同操作时创建的数量相比
例如,这是我今晚写的一些代码:
def idMissingFilings(dEFilings,indexFilings):
inBoth=set(indexFilings.keys()).intersection(dEFilings.keys())
missingFromDE=[]
for each in inBoth:
if len(dEFilings[each])<len(indexFilings[each]):
dEtemp=[]
for filing in dEFilings[each]:
#dateText=filing.split("\\")[-1].split('-')[0]
#year=dateText[0:5]
#month=dateText[5:7]
#day=dateText[7:]
#dETemp.append(year+"-"+month+"-"+day+"-"+filing[-2:])
dEtemp.append(filing.split('\\')[-1].split('-')[0][1:5]+"-"+filing.split('\\')[-1].split('-')[0][5:7]+"-"+filing.split('\\')[-1].split('-')[0][7:]+"-"+filing[-2:])
indexTemp=[]
for infiling in indexFilings[each]:
indexTemp.append(infiling.split('|')[3]+"-"+infiling[-6:-4])
tempMissing=set(indexTemp).difference(dEtemp)
for infiling in indexFilings[each]:
if infiling.split('|')[3]+"-"+infiling[-6:-4] in tempMissing:
missingFromDE.append(infiling)
return missingFromDE
Run Code Online (Sandbox Code Playgroud)
现在我在dEtemp.append(blah blah blah)行中分割了我正在处理4次的字符串之一
filing.split('\\')
Run Code Online (Sandbox Code Playgroud)
历史上在Fortran或SAS中,如果我尝试相同的话,我会将我的字符串"切片"一次并为我将要在此表达式中使用的字符串的每个部分分配一个变量.
我不断强迫自己使用表达式而不是先解析一个值并使用该值.我这样做的唯一原因是我通过模仿其他人的代码来学习,但我一直想到这个问题 - 在哪里可以找到一个有说服力的讨论为什么一个比另一个更好
代码比较驱动器上的一组文档和这些文档的源列表,并检查源中的所有文档是否都显示在驱动器上
好的,评论部分更容易阅读,我决定如何回应nosklos答案
是的,把所有内容都放在表达式中并不是更好.请使用变量.
使用变量不仅更好,因为您只需执行一次操作并保存多次使用的值.主要原因是代码变得更具可读性.如果您将变量命名为right,它将兼作免费的隐式文档!
归档时间: |
|
查看次数: |
116 次 |
最近记录: |