它看起来像返回的列表keys()和values()字典的方法总是一对一的映射(假设字典在调用2方法之间没有改变).
例如:
>>> d = {'one':1, 'two': 2, 'three': 3}
>>> k, v = d.keys(), d.values()
>>> for i in range(len(k)):
print d[k[i]] == v[i]
True
True
True
Run Code Online (Sandbox Code Playgroud)
如果你不改变调用keys()和调用之间的字典values(),假设上面的for循环总是打印True是错误的吗?我找不到任何证明这一点的文件.
Python dir(…)和vars(…).keys()Python 之间有区别吗?
(我希望有区别,因为否则这会破坏"一种方法去做"原则...... :)
我找不到finalPython中相当于Java的文档,有这样的东西吗?
我正在创建一个对象的快照(如果有任何失败则用于恢复); 一旦分配了这个备份变量,它就不应该被修改 - Python中的类似最终功能对此非常有用.
鉴于这3个数据列表和关键字列表:
good_data1 = ['hello, world', 'hey, world']
good_data2 = ['hey, man', 'whats up']
bad_data = ['hi, earth', 'sup, planet']
keywords = ['world', 'he']
Run Code Online (Sandbox Code Playgroud)
我正在尝试编写一个简单的函数来检查是否存在任何关键字作为数据列表中任何单词的子字符串.它应该为good_data列表返回True,为False 返回False bad_data.
我知道如何以一种效率低下的方式做到这一点:
def checkData(data):
for s in data:
for k in keywords:
if k in s:
return True
return False
Run Code Online (Sandbox Code Playgroud) 我能够获取图像标记中的值(请参阅下面的XML),但不能获取Category标记.区别在于一个是CDATA部分,另一个是字符串.任何帮助,将不胜感激.
from xml.dom import minidom
xml = """<?xml version="1.0" ?>
<ProductData>
<ITEM Id="0471195">
<Category>
<![CDATA[Homogenizers]]>
</Category>
<Image>
0471195.jpg
</Image>
</ITEM>
<ITEM Id="0471195">
<Category>
<![CDATA[Homogenizers]]>
</Category>
<Image>
0471196.jpg
</Image>
</ITEM>
</ProductData>
"""
bad_xml_item_count = 0
data = {}
xml_data = minidom.parseString(xml).getElementsByTagName('ProductData')
parts = xml_data[0].getElementsByTagName('ITEM')
for p in parts:
try:
part_id = p.attributes['Id'].value.strip()
except(KeyError):
bad_xml_item_count += 1
continue
if not part_id:
bad_xml_item_count += 1
continue
part_image = p.getElementsByTagName('Image')[0].firstChild.nodeValue.strip()
part_category = p.getElementsByTagName('Category')[0].firstChild.data.strip()
print '\t'.join([part_id, part_category, part_image])
Run Code Online (Sandbox Code Playgroud) 处理脚本以使用时间戳(教育设置)收集用户浏览器历史记录.Firefox 3历史记录保存在sqlite文件中,并且标记在UNIX纪元时间...在python中通过SQL命令获取它们并转换为可读格式非常简单:
sql_select = """ SELECT datetime(moz_historyvisits.visit_date/1000000,'unixepoch','localtime'),
moz_places.url
FROM moz_places, moz_historyvisits
WHERE moz_places.id = moz_historyvisits.place_id
"""
get_hist = list(cursor.execute (sql_select))
Run Code Online (Sandbox Code Playgroud)
Chrome还将历史存储在sqlite文件中..但它的历史时间戳显然是格式化为自1601年1月1日午夜UTC以来的微秒数....
如何将此时间戳转换为可读格式,如Firefox示例中所示(如2010-01-23 11:22:09)?我正在用python 2.5.x(OS X 10.5上的版本)编写脚本,并导入sqlite3模块....
我正在尝试使用类似于此示例的lxml指定命名空间(取自此处):
<TreeInventory xsi:noNamespaceSchemaLocation="Trees.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
</TreeInventory>
Run Code Online (Sandbox Code Playgroud)
我不确定如何添加要使用的Schema实例以及Schema位置.该文件让我开始,这样做是这样的:
>>> NS = 'http://www.w3.org/2001/XMLSchema-instance'
>>> TREE = '{%s}' % NS
>>> NSMAP = {None: NS}
>>> tree = etree.Element(TREE + 'TreeInventory', nsmap=NSMAP)
>>> etree.tostring(tree, pretty_print=True)
'<TreeInventory xmlns="http://www.w3.org/2001/XMLSchema-instance"/>\n'
Run Code Online (Sandbox Code Playgroud)
我不知道如何指定它是一个实例,然后还指定一个位置.看来这可以用nsmap关键字-arg 来完成etree.Element,但我不知道怎么做.
关于Python和Java中的线程我几乎没有问题......
TNX!
我想使用python来创建一个通过公钥加密密码的函数.在用户端我需要安装PGP软件,它将生成密钥对.我想只使用公钥加密和私钥进行解密.问题在于加密功能(如何使用密钥进行加密)以及pgp安装.谁能告诉我这样做的正确方法
谢谢
我无法理解 pyuic4 主要使用的 connectSlotsByName() 方法。到目前为止,该类在 PyQt 文件中是单个类,这是可以的,因为我们可以使用 self ,它将在整个过程中与单个对象关联。但是当我们尝试时要使用不同文件中的各种类,就会出现问题并需要使用 connectSlotsByName() 。这是我遇到的奇怪情况。
我创建了一个堆叠小部件..
我在上面放置了我的第一个小部件。它有一个名为“下一步 >”的按钮。
单击下一步时,它会隐藏当前小部件并添加另一个具有“单击我”按钮的小部件。
这里的问题是第二个“点击我”按钮的点击事件没有被捕获。这是我可以为我的原始问题给出的一个最小的例子。请帮助我。
这是文件 No.1..(它具有父级堆叠小部件及其第一页)。单击下一步时,它会添加第二页,其中 file2 中有“clickme”按钮。
from PyQt4 import QtCore, QtGui
import file2
class Ui_StackedWidget(QtGui.QStackedWidget):
def __init__(self,parent=None):
QtGui.QStackedWidget.__init__(self,parent)
self.setObjectName("self")
self.resize(484, 370)
self.setWindowTitle(QtGui.QApplication.translate("self", "stacked widget", None, QtGui.QApplication.UnicodeUTF8))
self.createWidget1()
def createWidget1(self):
self.page=QtGui.QWidget()
self.page.setObjectName("widget1")
self.pushButton=QtGui.QPushButton(self.page)
self.pushButton.setGeometry(QtCore.QRect(150, 230, 91, 31))
self.pushButton.setText(QtGui.QApplication.translate("self", "Next >", None, QtGui.QApplication.UnicodeUTF8))
self.addWidget(self.page)
QtCore.QMetaObject.connectSlotsByName(self.page)
QtCore.QObject.connect(self.pushButton,QtCore.SIGNAL('clicked()'),self.showWidget2)
def showWidget2(self):
self.page.hide()
obj=file2.widget2()
obj.createWidget2(self)
if __name__ == "__main__":
import sys
app = QtGui.QApplication(sys.argv)
ui = Ui_StackedWidget()
ui.show()
sys.exit(app.exec_())
Run Code Online (Sandbox Code Playgroud)
这是文件2
from PyQt4 …Run Code Online (Sandbox Code Playgroud)