小编car*_*arl的帖子

for 循环列表忽略第二个元素?

我有一个非常奇怪的错误,我看不出哪里出错了。我想遍历对象列表

objects =  [<object 1>, <object 2>, <object 3>, <object 4>, <Query_Category 5>, <object 6>] 
Run Code Online (Sandbox Code Playgroud)

我做了一个简单的

for i, object in enumerate(objects):
    print "delete ", object
    objects.pop(i)
Run Code Online (Sandbox Code Playgroud)

输出是

delete  <Query_Category 1>
delete  <Query_Category 3>
delete  <Query_Category 4>
delete  <Query_Category 5>
delete  <Query_Category 6>
Run Code Online (Sandbox Code Playgroud)

所以循环忽略了第二个元素?这个结果是可重复的,这意味着如果我再次运行它会导致相同的结果???这对您来说可能无法重现,因为我猜这是由我的代码中的一些奇怪的东西引起的???但我不知道要寻找什么?我在这里缺少总和基本的python原则吗?谢谢卡尔

python

4
推荐指数
1
解决办法
109
查看次数

使用对象属性将列表转换为列表列表

我有一个对象列表

objects = [<object 1>, <object 2>, <object 3>, <object 4>, <object 5>, <object 5>]
Run Code Online (Sandbox Code Playgroud)

每个对象都有一个属性date(object.date).我想将列表拆分为列表列表,其中每个子列表只有具有相同日期的对象.有一些聪明的方法吗?我天真的解决方案是

list_of_lists = []
for object in objects:
    success = 0
    for list in list_of_lists:
        if object.date == list[0].date:
            list.append(object)
            success = 1
            break
    if not success:
        list_of_lists.append([object])
Run Code Online (Sandbox Code Playgroud)

这确实给出了正确的结果,但我只想知道最佳解决方案.

python

4
推荐指数
1
解决办法
346
查看次数

在javascript中按名称获取子节点

如何获得具有特定名称的html标签的所有子项?

我们假设我有一个<div>看起来像这样的东西

<div id=test>
    <input name=test1/>
    <input name=test2/>
</div>
Run Code Online (Sandbox Code Playgroud)

如果我有div元素,我怎样才能得到名为test1或test2的孩子?我试过了

div.getElementsByName('test1')
Run Code Online (Sandbox Code Playgroud)

但那不起作用?

html javascript

4
推荐指数
2
解决办法
8905
查看次数

如果不滚动,则隐藏滚动条

如果用户不滚动,我想隐藏滚动条,这意味着如果用户滚动,则应显示滚动条(仅滚动条而不是滚动轨道),而如果用户不滚动,则应消失。我已经进行了很长时间的设置,但是对页面进行了一些更改,现在页面始终显示滚动条(如果内容多于一页可以覆盖的范围)。不幸的是,我不知道我做了什么使该功能消失了?我在CSS中玩了溢出,但是溢出:隐藏只是消除了所有滚动的可能性。这是一个小提琴,显示了我当前的设置

https://jsfiddle.net/jsmnsLm7/(请将该窗口放大,以便您可以看到导航栏设置的所有功能)

如你所见,我用

overflow: hidden 
Run Code Online (Sandbox Code Playgroud)

在身体和

overflow: scroll
Run Code Online (Sandbox Code Playgroud)

在主要。谢谢你的帮助卡尔

html css scrollbar hide

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

克隆选择字段后无法更改选择

我有一个选择字段

<div class="col-xs-10 selectContainer" id="jc_leader_input_field" style="display: inline;">
    <select class="form-control selectpicker" style="margin:0px;padding:0px" value="" data-size="15">
        <option selected="selected" value="0">Option1</option>
        <option value="1">Option0</option>
    </select>
</div>
Run Code Online (Sandbox Code Playgroud)

现在我想克隆这个对象并将其包含在我的表单中

var div = document.createElement("div");
var selectfield = $('#jc_leader_input_field').clone();
selectfield.attr('id','test');
selectfield.appendTo(div); 
$('#group_leaders_inputs').append(div);
Run Code Online (Sandbox Code Playgroud)

其中#group_leaders_inputs指的是形式。克隆和插入工作正常,但我无法更改复制的选择字段中的任何选项。

我做了一个小提琴来说明问题......在制作它的同时,我注意到没有 bootstrap-select 它实际上工作得很好 http://jsbin.com/vonoqazawa/edit?html,output

html javascript jquery

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

python中具有最大字符串长度的.join()命令

我想将一个 id 列表加入一个字符串,其中每个 id 由一个“或”分隔。在python中我可以做到这一点

' OR '.join(list_of_ids)
Run Code Online (Sandbox Code Playgroud)

我想知道是否有办法防止这个字符串变得太大(就字节而言)。这对我来说很重要的原因是我在 API 中使用该字符串并且该 API 强加了 4094 字节的最大长度。我的解决方案如下,我只是想知道是否有更好的解决方案?

list_of_query_strings = []
substring = list_of_ids[0]
list_of_ids.pop(0)
while list_of_ids:
    new_addition = ' OR ' + list_of_ids[0]
    if sys.getsizeof(substring + new_addition) < 4094:
        substring += new_addition
    else:
        list_of_query_strings.append(substring)
        substring = list_of_ids[0]
    list_of_ids.pop(0)
list_of_query_strings.append(substring)
Run Code Online (Sandbox Code Playgroud)

python

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

将用户 ip 和用户 id 添加到 Flask 应用程序中的日志文件中

我正在使用标准 Python 日志记录包在 Flask 应用程序中写入日志文件。我想添加用户 IP 地址,如果用户通过身份验证,我还想记录用户 ID。有人知道怎么做这个吗?现在我的格式化程序看起来像这样

fmt = ('%(asctime)s - %(name)s - %(levelname)s - '
       '%(filename)s:%(lineno)s - %(funcName)20s() - %(message)s')
formatter = logging.Formatter(fmt)
Run Code Online (Sandbox Code Playgroud)

python logging flask

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

操纵 matplotlib 图例中的线条样式

我想在我的图中包含一个图例,即使相应的曲线使用 linstyle '--',它也会将所有线显示为实线。有没有

plt.plot(x, y, linestyle='--')
plt.legend(loc=0) 
plt.show()
Run Code Online (Sandbox Code Playgroud)

因此,上图的图例应显示一条实线。

python matplotlib

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

计算 sql-alchemy 中的唯一行数

我是 sql alchemy 的新手,我想计算表中的唯一行,并输出唯一行以及该行的副本数。假设我有一张这样的桌子

Table A
--------------
id
address
Run Code Online (Sandbox Code Playgroud)

现在我想获取该表的所有行,但对于具有相同地址的行,我只想获取一行(与哪个 id 无关)。我还想知道某个特定地址有多少个 id。因此,如果有两个人住在同一地址“主要街道”(假设 id=4 和 id=12),我希望得到这样的输出(“主要街道”,2),

这是我的开始尝试

query = models.A.query
query = query.add_columns(func.count(models.A.address)).all()
Run Code Online (Sandbox Code Playgroud)

然而,这给了我该表中的总行数。所以我猜 func.count 是错误的函数?预先感谢卡尔

python sqlalchemy flask-sqlalchemy

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

sqlalchemy.exc.NoReferencedTableError: 与列 X 关联的外键找不到用来生成外键的表 Y

我的 sqlalchemy 架构中出现以下错误

python manage.py db migrate
...
sqlalchemy.exc.NoReferencedTableError: Foreign key associated with column 
'ArxivPaperFigure.arxiv_id' could not find table 'papers' with which to 
generate a foreign key to target column 'arxiv_id' 
Run Code Online (Sandbox Code Playgroud)

我不明白这个错误,因为表格文件不是新的,而是以前存在的。我做了很多改变,包括给论文表一个新的表来继承,但论文中的主键仍然是相同的 arxiv_id。这是我的论文表

class Papers(db.Model, Paper): 

    arxiv_id = db.Column(db.String(1000), primary_key=True)
    ...
Run Code Online (Sandbox Code Playgroud)

指向这个表的表是

class ArxivPaperFigure(db.Model): 
    __tablename__ = 'ArxivPaperFigure'

    id = db.Column(db.Integer, primary_key=True)
    arxiv_id = db.Column(db.String(1000), db.ForeignKey('papers.arxiv_id'))
Run Code Online (Sandbox Code Playgroud)

我可以通过重写外键来解决这个问题

arxiv_id = db.Column(db.String(1000), db.ForeignKey(Papers.arxiv_id))
Run Code Online (Sandbox Code Playgroud)

但是,我有很多外键,对于一些也有这些外键的表,这个解决方案不起作用。所以我想了解为什么会出现这个错误?文件表确实存在。如果我使用 psql 并用 \d 打印所有表,我会找到该行

public | papers  | table    | user
Run Code Online (Sandbox Code Playgroud)

那么为什么这个参考不再起作用了?

python sql database postgresql sqlalchemy

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