小编joh*_*ohn的帖子

Pythonic循环清单

说我有一个清单,

l = [1, 2, 3, 4, 5, 6, 7, 8]
Run Code Online (Sandbox Code Playgroud)

我想获取任意元素的索引及其邻居的值.例如,

i = l.index(n)
j = l[i-1]
k = l[i+1]
Run Code Online (Sandbox Code Playgroud)

但是,对于边缘情况,当i == len(l) - 1这失败.所以我以为我只是把它包起来

if i == len(l) - 1:
    k = l[0]
else:
    k = l[i+1]
Run Code Online (Sandbox Code Playgroud)

有没有pythonic方式来做到这一点?

python list

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

从某个元素开始循环列表

说我有一个清单:

l = [1, 2, 3, 4]
Run Code Online (Sandbox Code Playgroud)

我想循环一下.通常,它会做这样的事情,

1, 2, 3, 4, 1, 2, 3, 4, 1, 2...
Run Code Online (Sandbox Code Playgroud)

我希望能够在周期中的某个点开始,不一定是索引,但可能与元素匹配.假设我想从列表中的任何元素开始==4,然后输出将是,

4, 1, 2, 3, 4, 1, 2, 3, 4, 1...
Run Code Online (Sandbox Code Playgroud)

我怎么能做到这一点?

python list cycle

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

Xcode中的逻辑测试和应用测试之间的区别?

在Xcode中创建新的目标c单元测试用例时,它会要求您在"逻辑"测试和"应用程序"测试之间进行选择.有什么不同?

iphone xcode unit-testing objective-c ios

14
推荐指数
2
解决办法
2735
查看次数

Sqlalchemy:纬度和经度浮力精度?

我正在使用Sqlalchemy来定义我的表等等,这里是我提出的一些代码:

locations = Table('locations', Base.metadata,
Column("lat", Float(Precision=64), primary_key=True),
Column("lng", Float(Precision=64), primary_key=True),
)
Run Code Online (Sandbox Code Playgroud)

我在某处读到纬度和经度要求比浮点更精确,通常是双倍精度.所以我手动将精度设置为64,这是否足够?矫枉过正?这对我的情况有帮助吗?

database pylons database-design sqlalchemy geolocation

11
推荐指数
2
解决办法
7197
查看次数

为什么Git中没有撤消/重做?

据我所知,当你想在Git中撤消一些东西时,你必须明确地找到命令来撤消你已经完成的任何事情并发布它.例如,许多撤消提交和重做它的方法之一是遵循这里的示例,

$ git commit ...
$ git reset --soft HEAD^
$ edit
$ git add ....
$ git commit -c ORIG_HEAD 
Run Code Online (Sandbox Code Playgroud)

或者要撤消拉动,您可以按照此处的说明操作,

$ git reset --hard
Run Code Online (Sandbox Code Playgroud)

但是这些命令不一定可以互换.有没有理由为什么Git不允许简单的撤销和重做命令?它与背后的哲学有什么关系?另外,我对其他版本控制系统没有太多经验,但是它们中的任何一个都提供了简单的撤销和重做命令吗?

git version-control undo undo-redo

9
推荐指数
2
解决办法
1872
查看次数

Python:在字符串上使用split并返回元组?

说我做以下事情:

>>> a = foo@bar.com
>>> uname, domain = a.split('@')
Run Code Online (Sandbox Code Playgroud)

但是,如果我只想要域名,并且永远不会un?例如,如果我只想要uname而不是域名,我可以这样做:

>>> uname, = a.split('@')
Run Code Online (Sandbox Code Playgroud)

是否有更好的方法将一个元组拆分成一个元组并让它丢掉?

python

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

CSS内边框?

我只用CSS创建了左边的按钮.它是div中的div.但是,右侧的三个按钮是标签上的background属性img.我这样做了所以我可以按照这里的说明模拟翻转效果.

在此输入图像描述

现在,有没有办法使用CSS将内边框(如第一个按钮)添加到其他三个边框?

小提琴这里.

html javascript css

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

Celery rpc vs amqp结果后端

rpc结果后端与amqp后端有何不同?我在changelog中看到它取代了它,但是虽然它是作为协议编写的(带有://),底层协议仍然是amqp,对吗?

例如,result_backend = 'rpc://'vs result_backend = 'amqp://'.如果我rpc用作后端,当broker_use_ssl标志设置为true 时它是否也使用SSL ?

rpc amqp rabbitmq celery

7
推荐指数
1
解决办法
1706
查看次数

SqlAlchemy:如何在用户之间建立联系,即建立"朋友"

我正在尝试使用SqlAlchemy在Pylons中创建Sqlite数据库表.我正在使用声明性基础来使用以下代码一次创建表,类和映射器:

class Friends(Base):
    __tablename__ = 'friends'
    left_id = Column(Integer, ForeignKey('facebooks.id'), primary_key=True)
    right_id = Column(Integer, ForeignKey('facebooks.id'), primary_key=True) 

    def __repr__(self):
        return "<Friend(id:'%s' id: '%s')>" % (self.left_id, self.right_id)

class Facebook(Base):
    __tablename__ = 'facebooks'

    id = Column(Integer, primary_key=True)
    friends = relationship("Facebook",
                           secondary=Friends.__tablename__,
                           primaryjoin= id == Friends.right_id,
                           secondaryjoin= Friends.left_id == id)    

    def __init__(self, id):
        self.id = id

    def __repr__(self):
        return "<User(id:'%s')>" % (self.id)
Run Code Online (Sandbox Code Playgroud)

我只是学习所有不同的关系,比如多对一,一对多,一对一,多对多以及如何用表和/或声明地实现每个关系.我想知道,我如何将一个物体与自身联系起来?例如,我想将facebook与其他facebook关联起来.换句话说,在它们之间建立联系,并将它们建立为"朋友".我如何构建数据库以实现这一目标?

编辑:我更改了上面更新的代码,并添加了一个名为"Friends"的关联对象,但是当我将一个朋友添加到facebook对象时,它只能在一个方向上工作.如果我把鲍勃作为约翰的朋友加入,我可以在John.Friends中看到鲍勃,但我在Bob.Friends中看不到约翰.我究竟做错了什么?我尝试在Friends类中添加以下关系:

friend = relationship("Facebook", backref="friends")
Run Code Online (Sandbox Code Playgroud)

但是我收到一个错误:

sqlalchemy.exc.ArgumentError:无法确定关系Friends.friend上的父/子表之间的连接条件.指定'primaryjoin'表达式.如果存在'secondary',则还需要'secondaryjoin'.

python pylons database-design sqlalchemy

6
推荐指数
1
解决办法
1818
查看次数

Django ORM是否具有SQLAlchemy的混合属性?

SQLAlchemy中,混合属性是应用于ORM映射类的属性或方法,

class Interval(Base):
    __tablename__ = 'interval'

    id = Column(Integer, primary_key=True)
    start = Column(Integer, nullable=False)
    end = Column(Integer, nullable=False)

    def __init__(self, start, end):
        self.start = start
        self.end = end

    @hybrid_property
    def length(self):
        return self.end - self.start

    @hybrid_method
    def contains(self,point):
        return (self.start <= point) & (point < self.end)

    @hybrid_method
    def intersects(self, other):
        return self.contains(other.start) | self.contains(other.end)
Run Code Online (Sandbox Code Playgroud)

这允许在类和实例级别执行不同的行为,从而使使用相同代码评估SQL语句变得更加简单,

>>> i1 = Interval(5, 10)
>>> i1.length
5

>>> print Session().query(Interval).filter(Interval.length > 10)
SELECT interval.id AS interval_id, interval.start AS …
Run Code Online (Sandbox Code Playgroud)

python database django orm sqlalchemy

6
推荐指数
1
解决办法
1201
查看次数