我们可以在列表理解中使用elif吗? 例如: l = [1, 2, 3, 4, 5] for values in l: if values==1: print 'yes' elif values==2: print 'no' else: print 'idle' 我们可以在列表理解中joinelif ,类似于上面的代码吗? 例如,答案如下: ['yes', 'no', 'idle', 'idle', 'idle'] 到目前为止,我只有在列表理解时才使用。
在升级到狮子之前,我已经通过terminal完成了在python shell中的工作。 按照这些说明 ,有可能使标签完成工作。 自从升级到Lion后,我现在无法在Python的terminal会话中完成标签页的工作。 我已经按照上面的说明去信了,但是它仍然不起作用。 Lion中的readline模块有什么不同吗? 挂钩到“选项卡:完整”选项不再似乎工作。 我想知道是否terminal是忽略readline,或者如果它是Python本身。 Python版本:2.7.1 编辑: 通过标签填写,我的意思是我可以做如下的事情: # django import MyModel MyModel.objects.a[TAB] # will complete to all()
我在我的模板中使用这样的东西 <select multiple="multiple" name="services" id="services" size="5"> {% for service in services %} <option value="{{service.id}}">{{service}}</option> {% endfor %} </select> 当我在Firebug或Djangodebugging中查看POST数据时,我发现它只发送一个值。 我做错了什么或误解了一个概念?
我有一个大的列表,如: [A][B1][C1]=1 [A][B1][C2]=2 [A][B2]=3 [D][E][F][G]=4 我想build立一个多层次的字典,如: A –B1 —–C1=1 —–C2=1 –B2=3 D –E —-F ——G=4 我知道,如果我使用recursiondefaultdict我可以写table[A][B1][C1]=1 , table[A][B2]=2 ,但这只适用于硬编码插入语句。 在parsing列表的时候,我没有预先调用table[key1][key2][…]多less个[ table[key1][key2][…] 。
我偶然发现了一篇博文,详细介绍了如何在Python中实现powerset函数。 于是我开始尝试自己的做法,发现Python显然不能有一套集合,因为集合是不可散列的。 这是令人厌烦的,因为powerset的定义是它是一组集合,我想用实际集合的操作来实现它。 >>> set([ set() ]) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: unhashable type: 'set' 有没有一个很好的理由Python集不可哈希?
我是新来的python和大pandas。 我想获得一个tsv文件加载到pandas数据DataFrame 。 这是我正在尝试和我得到的错误: >>> df1 = DataFrame(csv.reader(open('c:/~/trainSetRel3.txt'), delimiter='\t')) Traceback (most recent call last): File "<pyshell#28>", line 1, in <module> df1 = DataFrame(csv.reader(open('c:/~/trainSetRel3.txt'), delimiter='\t')) File "C:\Python27\lib\site-packages\pandas\core\frame.py", line 318, in __init__ raise PandasError('DataFrame constructor not properly called!') PandasError: DataFrame constructor not properly called!
我希望能够估计两个(纬度,经度)点之间的距离。 我想低调,因为这将是A *图search,我希望它是快速的 。 这些点将相距最多800公里。
python中的hex()函数将前导字符0x放在数字前面。 无论如何要告诉它不要把它们? 所以0xfa230将是fa230 。 代码是 import fileinput f = open('hexa', 'w') for line in fileinput.input(['pattern0.txt']): f.write(hex(int(line))) f.write('\n')
为了确保来自我的模块的错误消息是有用的,我想看到所有由assertRaises()捕获的错误消息。 今天我为每个assertRaises()做了这个工作,但是由于testing代码中有很多这样的代码,所以它非常繁琐。 我怎样才能打印所有assertRaises()的错误消息? 我研究了http://docs.python.org/library/unittest.html上的文档,却没有弄清楚如何解决这个问题。 我可以以某种方式monkeypatch assertRaises()方法? 我不想更改testing代码中的所有assertRaises()行,因为我经常使用testing代码的标准方式。 我想这个问题与Pythonunit testing有关:我如何testingexception中的参数? 我今天就是这么做的。 例如: #!/usr/bin/env python def fail(): raise ValueError('Misspellled errrorr messageee') 和testing代码: #!/usr/bin/env python import unittest import failure class TestFailureModule(unittest.TestCase): def testFail(self): self.assertRaises(ValueError, failure.fail) if __name__ == '__main__': unittest.main() 为了检查错误信息,我只是将assertRaises()中的错误types更改为IOError。 然后我可以看到错误信息: E ====================================================================== ERROR: testFail (__main__.TestFailureModule) ———————————————————————- Traceback (most recent call last): File "test_failure.py", line 8, in […]
如果您认为这不属于这里,请随意标记为无关紧要。 我有一个用Python和Haskell编写的简单脚本。 它读取一个具有1,000,000换行分隔整数的文件,将该文件parsing成整数列表,快速sorting,然后将其写入到sorting的不同文件中。 这个文件与未sorting的文件格式相同。 简单。 这里是Haskell: quicksort :: Ord a => [a] -> [a] quicksort [] = [] quicksort (p:xs) = (quicksort lesser) ++ [p] ++ (quicksort greater) where lesser = filter (< p) xs greater = filter (>= p) xs main = do file <- readFile "data" let un = lines file let f […]