我发现能够在运行时创建新变量并创建结果字典以便稍后处理(即写入文件)非常有用:
myDict = {}
for i in range (1,10):
temp = "variable"+str(i)
vars()[temp] = myFunctionThatReturnsData() # variable1= data1, variable2 = data2,etc.
myDict[temp] = vars(temp)
Run Code Online (Sandbox Code Playgroud)
它创建了我可以用myDict [result1]调用的字典条目[result1:data1].我一直在使用vars()而没有真正理解我在做什么.我把它vars()带回一个带有局部变量(?)的字典,和
vars()[x] = y
创建[x:y]的新词典条目?
我有一个脚本,我传入一个用{input1:data1,input2:data2}准备的字典,我使用这个方法迭代所有值,存储所有结果,并将其输出到一个文件.这段代码在一个类中的函数内部,并且正在工作.
我的困惑之处在于我已经阅读了各种关于如何不与locals()混淆的帖子,以及vars()与locals()或globals()的等效(?).
所以我的问题(至少)是双重的:
1.什么是vars(),特别是vars()[x] = y,
2.这本词典的范围是什么(在编写更大的程序时我需要记住的是什么
3.这是不错的编程实践.
提前致谢!
使用python模块xlwt,两次写入同一个单元格会引发错误:
Message File Name Line Position
Traceback
<module> S:\********
write C:\Python26\lib\site-packages\xlwt\Worksheet.py 1003
write C:\Python26\lib\site-packages\xlwt\Row.py 231
insert_cell C:\Python26\lib\site-packages\xlwt\Row.py 150
Exception: Attempt to overwrite cell: sheetname=u'Sheet 1' rowx=1 colx=12
Run Code Online (Sandbox Code Playgroud)
使用代码段
def insert_cell(self, col_index, cell_obj):
if col_index in self.__cells:
if not self.__parent._cell_overwrite_ok:
msg = "Attempt to overwrite cell: sheetname=%r rowx=%d colx=%d" \
% (self.__parent.name, self.__idx, col_index)
raise Exception(msg) #row 150
prev_cell_obj = self.__cells[col_index]
sst_idx = getattr(prev_cell_obj, 'sst_idx', None)
if sst_idx is not None:
self.__parent_wb.del_str(sst_idx)
self.__cells[col_index] = cell_obj
Run Code Online (Sandbox Code Playgroud)
看起来代码'引发'一个例外,它会停止整个过程.删除'加注'一词足以允许覆盖单元格?我很欣赏xlwt的警告,但我认为pythonic方式是假设"我们知道我们在做什么".触摸模块时我不想破坏任何其他东西.
假设有一个dict变量在运行时变得非常大 - 达到数百万个键:值对.
这个变量是否存储在RAM中,有效地耗尽了所有可用内存并减慢了系统的其余部分?
要求翻译显示整个字典是一个坏主意,但只要一次访问一个密钥就可以了吗?
只是想知道是否有其他人使用PyScripter作为Python编辑应用程序.
我已经在黑色背景下运行我的python IDLE,现在发现PyScripter的默认白色是致盲的.
对于我的生活,我找不到菜单来更改程序的"突出显示"部分(打开和修改.py文件的位置).
然而,我确实找到了一些已经进行了我想要的更改的导出配置文件:http: //code.google.com/p/pyscripter/wiki/Customization
但是我仍然想知道如何自己做,所以我可以在这个编辑器上花一些时间.谢谢!
我刚刚发现了Sikuli,并希望在没有深入了解在线示例和演示的情况下看到全面的功能列表.
有没有人找到这样的名单?
此外,显然Sikuli也支持更复杂的循环和函数调用,并且似乎基于Python(!!).例子很棒.
谢谢.
我在USB记忆棒上运行PortablePython_1.1_py2.6.1.我的代码依赖于一些未预装的模块.有谁知道是否可以在便携式python安装中添加新模块?简单地将文件夹复制到site-lib似乎不起作用.
我在我使用的地方写了很多小应用程序
try:
print "always does this until I Ctrl+C"
Except KeyboardInterrupt:
print "finish program"
Run Code Online (Sandbox Code Playgroud)
我刚刚开始使用IDLE并启动了PyScripter.但是CTRL + C不再有效.是否仍然可以KeyboardInterrupt使用内置解释器发送一段时间?
我从阅读parashift.com了解到,在指针上使用delete会释放内存
[16.1] delete p是删除指针p还是指向数据*p?
指向数据.
关键字应该是delete_the_thing_pointed_to_by.当释放C中指针所指向的内存时,会发生同样的英语滥用:free(p)实际上意味着free_the_stuff_pointed_to_by(p).
关于"删除(C++)"的维基文章说"许多程序员事后将指针设置为NULL以最小化编程错误"
是否有必要考虑删除指针本身?
说声明的指针仍然占用内存是否正确?
即如果我要将数十亿个不同的指针声明为NULL,它仍会耗尽内存(因此我需要删除指针本身).
我该如何删除指针?
python ×7
pyscripter ×2
variables ×2
c++ ×1
dictionary ×1
function ×1
list ×1
memory ×1
module ×1
operations ×1
ram ×1
sikuli ×1
string ×1
xlwt ×1