在for
循环遍历列表的Python 循环中,我们可以编写:
for item in list:
print item
Run Code Online (Sandbox Code Playgroud)
它整齐地遍历列表中的所有元素.有没有办法在循环中知道到目前为止我循环了多少次?例如,我想要一个列表,在我处理了十个元素后,我想用它们做一些事情.
我想到的替代方案将是这样的:
count=0
for item in list:
print item
count +=1
if count % 10 == 0:
print 'did ten'
Run Code Online (Sandbox Code Playgroud)
要么:
for count in range(0,len(list)):
print list[count]
if count % 10 == 0:
print 'did ten'
Run Code Online (Sandbox Code Playgroud)
到目前为止,是否有更好的方法(就像for item in list
)获得迭代次数?
我有一组X,Y数据点(大约10k),很容易绘制为散点图,但我想表示为热图.
我查看了MatPlotLib中的示例,他们似乎都已经开始使用热图单元格值来生成图像.
有没有一种方法可以将一堆x,y,所有不同的,转换为热图(其中x,y频率较高的区域会变得"温暖")?
我写了一个脚本,可以帮助Windows用户进行日常生活.我想简单地向她发送.exe而不是要求她安装python,dll或者必须处理任何其他文件.
我已经阅读了很多关于将Python脚本编译成可执行文件的stackoverflow条目.我有点困惑,因为有很多选择,但有些似乎过时了(自2008年以来没有更新),没有一个对我来说不够简单,因为我花了几个小时就没有问过这个问题.
我希望有更好的,最新的方式来做到这一点.
我调查了一下:
但要么我不能让他们工作或无法理解如何得到我需要的结果.我得到的最接近的是py2exe,但它仍然给了我MSVCR71.dll
我希望得到一步一步的答案,因为我也无法遵循这里的一些调整答案,这些答案需要事先了解如何使用py2exe或其他一些工具.
我正在使用Python 2.5,因为其中一个模块仅适用于该版本.
我有一个两项列表的列表,需要搜索其中的内容.
如果列表是:
list =[ ['a','b'], ['a','c'], ['b','d'] ]
Run Code Online (Sandbox Code Playgroud)
我可以轻松地搜索一对
['a','b'] in list
Run Code Online (Sandbox Code Playgroud)
现在,有没有办法看看我是否有一对在第二个位置存在字符串?我可以做这个:
for i in range (0, len(list)):
if list[i][1]==search:
found=1
Run Code Online (Sandbox Code Playgroud)
但是没有for
循环是否有更好的方法?我i
发现它不需要知道或保持循环.
我已经看到一些关于通过网页访问客户端机器上的文件的帖子,即这个问题.
我正试图在我正在编写的一些算法中继续"在云中不断更新"范例,这样我的用户就可以通过访问网页来访问最新版本.这要求程序/网页可以从目录开始,并递归地检查其中的文件,并根据找到的内容计算结果.最后它还应该能够将结果文件写入客户端的文件系统.
上一个问题中的一个答案提到了Google Gears,但此后已停止使用HTML5.是否可以在HTML5中访问客户端目录?怎么样?
我知道为什么任何网页访问本地文件都存在安全风险,但出于我的目的,我可以向用户询问相应的权限.
在Python中,您可以使用读取文件并将其行加载到列表中
f = open('file.txt','r')
lines = f.readlines()
Run Code Online (Sandbox Code Playgroud)
每个单独的行由分隔,\n
但如果行的内容有\r
,则不将其视为新行.我需要将所有转换\r
为\n
并获得正确的列表lines
.
如果我在.split('\r')
里面做,lines
我会在列表中找到列表.
我想到打开一个文件,替换所有\r
到\n
,关闭文件并重新阅读它,然后用readlines()
但这似乎浪费.
我该如何实现呢?
我想看看使用Python完成的大型(> 40个开发人员)项目如何:
它是什么类型的软件(服务器,客户端,应用程序,网络......)并不重要,但我更喜欢成熟的东西(1.0已经完成)
我创建了一个全新安装ubuntu 9.10的虚拟机.
我试图让MySQLdb在python上运行,但我失败了 import MySQLdb
我先试过sudo easy_install MySQL_python-1.2.3c1-py2.6-linux-i686.egg
然后 sudo apt-get install python-mysqldb
.
两个显然安装好了,但在python中给了我以下错误消息我有导入行:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.6/dist-packages/MySQL_python-1.2.3c1-py2.6-linux-i686.egg/MySQLdb/__init__.py", line 19, in <module>
File "/usr/local/lib/python2.6/dist-packages/MySQL_python-1.2.3c1-py2.6-linux-i686.egg/_mysql.py", line 7, in <module>
File "/usr/local/lib/python2.6/dist-packages/MySQL_python-1.2.3c1-py2.6-linux-i686.egg/_mysql.py", line 6, in __bootstrap__
ImportError: libmysqlclient_r.so.15: cannot open shared object file: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我已经安装了MySQL并且它正在运行,如果这很重要的话.我尝试了这个,但在第2步失败了
我有一个python脚本,使用plt.show()
它作为它的最后一条指令.当它运行时,IDLE只在最后一条指令后挂起.我得到的图像,但我没有收到提示.
在其他脚本上我通常ctrl-c
用来打破程序(有时候不能立即工作)但是我如何得到提示plt.show()
?Ctrl-c
不起作用......
还有其他方法可以阻止该计划吗?
如果它有任何区别,这在Windows上是IDLE.
我有一个长字符串,我用一堆计算值构建.然后我将此字符串写入文件.我把它格式化为:
string = str(a/b)+\
'\t'+str(c)\
'\t'+str(d)\
...
'\n'
Run Code Online (Sandbox Code Playgroud)
我想对每个值所代表的内容添加注释,但是评论#
或'''
不起作用.这是一个例子:
string = str(a/b)+\ #this value is something
'\t'+str(c)\ #this value is another thing
'\t'+str(d)\ #and this one too
...
'\n'
Run Code Online (Sandbox Code Playgroud)
我发现它不起作用:)所以我想知道在这种情况下,带有干净语法的代码会是什么样子.
对我来说,唯一的选择就是string +=
在每一条线上行动,但我正在摸索着"必须有更好的方法".
python ×9
matplotlib ×2
break ×1
comments ×1
compilation ×1
file-io ×1
filesystems ×1
for-loop ×1
heatmap ×1
histogram2d ×1
html5 ×1
list ×1
mysql ×1
open-source ×1
packaging ×1
py2exe ×1
python-idle ×1
readline ×1
security ×1
tkinter ×1
ubuntu-9.10 ×1