我有一个像这样的元组列表(总是对):
[(0, 1), (2, 3), (5, 7), (2, 1)]
Run Code Online (Sandbox Code Playgroud)
我想找到每对中第一项的总和,即:
0 + 2 + 5 + 2
Run Code Online (Sandbox Code Playgroud)
我怎么能用Python做到这一点?目前我正在遍历列表:
sum = 0
for pair in list_of_pairs:
sum += pair[0]
Run Code Online (Sandbox Code Playgroud)
我觉得必须有更多的Pythonic方式.
我确信在Python中有一个很好的方法可以做到这一点,但我对这门语言很新,所以请原谅我,如果这很容易!
我有一个列表,我想从该列表中挑选出某些值.我想要选择的值是列表中的索引在另一个列表中指定的值.
例如:
indexes = [2, 4, 5]
main_list = [0, 1, 9, 3, 2, 6, 1, 9, 8]
Run Code Online (Sandbox Code Playgroud)
输出将是:
[9, 2, 6]
Run Code Online (Sandbox Code Playgroud)
(即main_list中索引为2,4和5的元素).
我觉得这应该是可行的,使用像列表推导这样的东西,但我无法弄清楚(特别是,我无法弄清楚如何使用列表理解时访问项目的索引).
我知道如何使用纯PHP执行此操作,但我需要在不重新加载页面的情况下执行此操作.无论如何使用jQuery有效地撤回一些数据库结果(基于用户在表单上的第一个文本字段中输入的内容)然后使用从db查询中拉回的数据填充一些剩余字段?
基本上我希望看到用户离开文本字段(通过跳出或通过单击下一个字段)和繁荣,使用在该字段中输入的值提交查询,然后填充后续字段w/oa页面重新加载.
我熟悉jQuery的基础知识,但我还没有用它来做这样的事情,我从服务器上取回数据并尝试在客户端填充它.
任何关于如何最好地开始这个的建议/例子将非常感激.谢谢.
我想使用单个SQL查询(在MySQL中)来查找我指定的记录之后的记录.
即,如果表有:
id, fruit
-- -----
1 apples
2 pears
3 oranges
Run Code Online (Sandbox Code Playgroud)
我希望能够进行如下查询:
SELECT * FROM table where previous_record has id=1 order by id;
Run Code Online (Sandbox Code Playgroud)
(显然这不是真正的SQL语法,我只是使用伪SQL来说明我想要实现的目标)
将返回:
2, pears
Run Code Online (Sandbox Code Playgroud)
我目前的解决方案只是获取所有记录,并在PHP中查看它们,但这比我想要的慢.有更快的方法吗?
我会对返回两行的东西感到满意 - 即具有指定值的行和下一行.
编辑:对不起,我的问题措辞严厉.不幸的是,我对"next"的定义不是基于ID,而是基于水果名称的字母顺序.因此,我上面的例子是错误的,应该返回橙子,因为它在苹果之后按字母顺序排列.有没有办法对字符串而不是ID进行比较?
我是python的新手,并且有一个long列表,我想将它们连接成一个逗号分隔的字符串.
在PHP中,我会做这样的事情:
$output = implode(",", $array)
Run Code Online (Sandbox Code Playgroud)
在Python中,我不知道如何做到这一点.我尝试过使用join,但这不起作用,因为元素是错误的类型(即不是字符串).我是否需要创建列表的副本并将副本中的每个元素从long转换为字符串?或者有更简单的方法吗?
我正在尝试使用OpenCV从图像中提取SURF描述符.我正在使用OpenCV 2.4和Python 2.7,但我很难找到任何提供有关如何使用这些功能的信息的文档.我已经能够使用以下代码来提取功能,但我找不到任何合理的方法来提取描述符:
import cv2
img = cv2.imread("im1.jpg")
img2 = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
surf = cv2.FeatureDetector_create('SURF')
detector = cv2.GridAdaptedFeatureDetector(surf, 50) # max number of features
fs = detector.detect(img2)
Run Code Online (Sandbox Code Playgroud)
我尝试提取描述符的代码是:
import cv2
img = cv2.imread("im3.jpg")
sd = cv2.FeatureDetector_create("SURF")
surf = cv2.DescriptorExtractor_create("SURF")
keypoints = []
fs = surf.compute(img, keypoints) # returns empty result
sd.detect(img) # segmentation faults
Run Code Online (Sandbox Code Playgroud)
有没有人有任何样本代码可以做这种事情,或指向任何提供样本的文档的指针?
我之前问了一个问题,关于用于AI原型的语言.共识似乎是,如果我想要它快,我需要使用像Java或C++这样的语言,但Python/Perl/Ruby对接口位有好处.
所以,这引出了另一个问题.将这些语言链接在一起有多容易?哪种组合效果最好?那么,如果我想要一个调用C++或Java AI函数的Ruby CGI类型程序,那么这很容易吗?我在哪里寻找有关做这类事情的信息的指针?或者不同的组合会更好吗?
我编写Web应用程序的主要经验是从C++ CGI开始,然后转移到Java servlet(大约10年前),然后经过长时间的编程后,我做了一些PHP.但是我没有使用脚本语言编写Web应用程序的经验,然后编写了一个编译语言来获取速度关键位.所以欢迎任何建议!
谁能解释为什么导入cv和numpy会改变python的struct.unpack的行为?这是我观察到的:
Python 2.7.3 (default, Aug 1 2012, 05:14:39)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from struct import pack, unpack
>>> unpack("f",pack("I",31))[0]
4.344025239406933e-44
Run Code Online (Sandbox Code Playgroud)
这是对的
>>> import cv
libdc1394 error: Failed to initialize libdc1394
>>> unpack("f",pack("I",31))[0]
4.344025239406933e-44
Run Code Online (Sandbox Code Playgroud)
导入cv后仍然可以
>>> import numpy
>>> unpack("f",pack("I",31))[0]
4.344025239406933e-44
Run Code Online (Sandbox Code Playgroud)
导入cv然后numpy后确定
现在我重新启动python:
Python 2.7.3 (default, Aug 1 2012, 05:14:39)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from struct import pack, unpack
>>> unpack("f",pack("I",31))[0] …Run Code Online (Sandbox Code Playgroud) 我使用JQuery来使表中的元素可拖动.(在此之前我从未使用过JQuery).它工作正常,但速度很慢.例如,从我点击并按住某个项目的那一刻起,到光标变化的那一刻约为2秒.这是在Firefox 3.0.6上.一旦项目被拖动,在我放开鼠标按钮和显着下降之间有一个更短但仍然明显的延迟(大约半秒,我估计).
我怀疑它是如此之慢的原因是因为桌子很大(6列和大约100行),但在我看来它并不是很大,我想知道是否有些愚蠢我正在做的那是让它变得如此缓慢.例如,我想知道每次拖动时JQuery代码是否被毫无意义地应用于表中的每个元素.不过,我不知道为什么会这样.
如果它有帮助,这是我的代码(注意我已经取出了光标调用,因为我担心它可能会减慢速度).
<script type='text/javascript'>
$(document).ready
(
function()
{
$('.draggable_div').draggable
(
{
start: function(event, ui)
{
$(this).css('background-color','#ddddff');
}
}
);
$('.draggable_td').droppable
(
{
over: function(event, ui)
{
$(this).css('background-color', '#ccffcc');
},
out: function(event, ui)
{
$(this).css('background-color', null);
},
drop: function(event, ui)
{
// snip: removed code here to save space.
}
}
);
}
);
</script>
Run Code Online (Sandbox Code Playgroud)
HTML表是这样的(由PHP生成):
<table id='main_table' border=0>
<tr>
<th width=14.2857142857%>0</th>
<th width=14.2857142857%>1</th>
<th width=14.2857142857%>2</th>
<th width=14.2857142857%>3</th>
<th width=14.2857142857%>4</th>
<th width=14.2857142857%>5</th>
<th width=14.2857142857%>6</th>
</tr>
<tr>
<td …Run Code Online (Sandbox Code Playgroud) 我有一些代码,我一直用它来查询MySQL,我希望将它与SQLite一起使用.我真正希望这不会涉及对代码进行太多更改.不幸的是,以下代码不适用于SQLite:
cursor.execute(query)
rows = cursor.fetchall()
data = []
for row in rows
data.append(row["column_name"])
Run Code Online (Sandbox Code Playgroud)
这会出现以下错误:
TypeError: tuple indices must be integers
Run Code Online (Sandbox Code Playgroud)
如果我更改引用以使用列号,它可以正常工作:
data.append(row[1])
Run Code Online (Sandbox Code Playgroud)
我能以这样的方式执行查询吗?我可以按名字引用列吗?