小编Sil*_*ost的帖子

以n的倍数迭代一个python序列?

如何批量处理序列的元素?

例如,使用序列"abcdef"和批量大小为2,我想执行以下操作:

for x, y in "abcdef":
    print "%s%s\n" % (x, y)
ab
cd
ef
Run Code Online (Sandbox Code Playgroud)

当然,这不起作用,因为它期望列表中的单个元素本身包含2个元素.

什么是一个漂亮,简短,干净,pythonic的方式来处理批处理列表中的下一个n个元素,或者从一个更大的字符串处处理长度为n的子字符串(两个类似的问题)?

python iteration

25
推荐指数
6
解决办法
2万
查看次数

如何在Python中散列大对象(数据集)?

我想计算包含Machine Learning数据集的Python类的哈希值.哈希意味着用于缓存,所以我想到md5sha1.问题是大多数数据都存储在NumPy数组中; 这些不提供__hash__()会员.目前我pickle.dumps()为每个成员做一个并根据这些字符串计算哈希.但是,我发现以下链接指示同一对象可能导致不同的序列化字符串:

为包含Numpy数组的Python类计算哈希的最佳方法是什么?

python hash sha1 numpy pickle

25
推荐指数
2
解决办法
8637
查看次数

如何确定python脚本是作为模块导入还是作为脚本运行?

问题相当简单,但没有通过搜索得到回答.如何在python脚本中确定此脚本是作为模块导入还是作为脚本运行?在python中有什么不同吗?

问题是,我只想在作为脚本运行时评估命令行参数,但是如果仅导入模块以在另一个脚本中使用它,则不会.(我希望能够使用一个脚本作为库和程序.)我担心vanilla的方式是构建lib和使用它的第二个脚本,但是我想为小工具提供第二个选项. /库.

python module

25
推荐指数
2
解决办法
6801
查看次数

RegEx模式只匹配某些字符

我是RegEx的新手,这个特殊的问题令我感到沮丧.这适用于JavaScript函数.

我需要验证输入,以便它只匹配此条件:

  • 字母AZ(大写和小写)
  • 数字0-9
  • 以下附加字符:空格,句点(.),逗号(,),加号(+)和短划线( - )

我可以很容易地为前两个标准编写一个模式,但第三个标准更难.这是我管理的最后一个模式,但它似乎不适用于测试字符串Farh%%$$+++,

任何帮助将不胜感激.

谢谢.

javascript regex

25
推荐指数
2
解决办法
6万
查看次数

Python:"缩进错误:unindent与任何外部缩进级别都不匹配"

我只是无法弄清楚这有什么问题......

#!/usr/bin/env python
#
#       Bugs.py
#       

from __future__ import division

# No Module!
if __name__ != '__main__': 
    print "Bugs.py is not meant to be a module"
    exit()

# App
import pygame, sys, random, math
pygame.init()

# Configuration Vars
conf = {
    "start_energy": 50, 
    "food_energy": 25, 
    "mate_minenergy": 50, 
    "mate_useenergy": 35, 
    "lifespan": 300000
}

class Bugs:
    def __init__(self):
        self.list  = []
        self.timers= {}
        # Names / colors for sexes
        self.sex = ["Male", "Female"]
        self.color = ["#CBCB25", "#A52A2A"]
        # Bug info tracking …
Run Code Online (Sandbox Code Playgroud)

python indentation

25
推荐指数
4
解决办法
12万
查看次数

为什么函数总是返回相同的类型?

我在某处读到函数应该总是只返回一种类型,所以下面的代码被认为是坏代码:

def x(foo):
 if 'bar' in foo:
  return (foo, 'bar')
 return None
Run Code Online (Sandbox Code Playgroud)

我想更好的解决方案是

def x(foo):
 if 'bar' in foo:
  return (foo, 'bar')
 return ()
Run Code Online (Sandbox Code Playgroud)

返回一个None然后创建一个新的空元组不是更便宜的记忆吗?或者这个时间差太小而不能注意到即使在较大的项目中?

python function return-type

25
推荐指数
5
解决办法
2万
查看次数

Python:集合如何工作

我有一个对象列表,我想把它变成一个集合.我的对象包含一些字段,其中一些是o.ido.area.如果这两个字段相同,我希望两个对象相等.即:o1==o2当且仅当o1.area==o2.area and o1.id==o2.id.

我尝试过度写作__eq__,__cmp__但我得到了错误:TypeError: unhashable instance.

我该怎么写?

python hash set

25
推荐指数
2
解决办法
1万
查看次数

Python:找到最小整数

我有以下代码:

l = ['-1.2', '0.0', '1']

x = 100.0
for i in l:
    if i < x:
        x = i
print x
Run Code Online (Sandbox Code Playgroud)

代码应该找到我的列表中的最低值(-1.2),但是当我打印'x'时它发现值仍然是100.0我的代码出错在哪里?

python integer list

25
推荐指数
4
解决办法
14万
查看次数

Python可选参数

伙计们,我刚刚开始使用python并且对可选参数感到困惑,比如我有这样的程序:

class B:
   pass

class A:
    def __init__(self, builds = B()):
        self.builds = builds
Run Code Online (Sandbox Code Playgroud)

如果我创建A两次

b = A()
c = A()
Run Code Online (Sandbox Code Playgroud)

并打印他们的构建

print b.builds
print c.builds
Run Code Online (Sandbox Code Playgroud)

我发现他们正在使用完全相同的对象,

<__main__.B instance at 0x68ee0>
<__main__.B instance at 0x68ee0>
Run Code Online (Sandbox Code Playgroud)

但它不是我想要的,因为如果b改变一些内部构建状态,c对象中的那个也将被改变.

是否可以通过使用此可选参数语法每次重新创建此可选参数?

python optional-arguments

24
推荐指数
3
解决办法
3万
查看次数

从列表中删除项目 - 在迭代期间 - 这个成语有什么问题?

作为一个实验,我这样做了:

letters=['a','b','c','d','e','f','g','h','i','j','k','l']
for i in letters:
    letters.remove(i)
print letters
Run Code Online (Sandbox Code Playgroud)

最后一次打印显示并非所有项目都被删除了?(每隔一个人).

IDLE 2.6.2      
>>> ================================ RESTART ================================
>>> 
['b', 'd', 'f', 'h', 'j', 'l']
>>> 
Run Code Online (Sandbox Code Playgroud)

对此有何解释?如何重新编写以删除每个项目?

python loops list

24
推荐指数
5
解决办法
2万
查看次数