小编mu *_*u 無的帖子

将元组作为字典中的值处理(在列表推导中)

我有一个这样的字典:

>>> pprint.pprint(d)
{'a': ('abc', 'pqr', 'xyz'),
 'b': ('abc', 'lmn', 'uvw'),
 'c': ('efg', 'xxx', 'yyy')}

现在,给定一个变量x,我希望能够列出元组中第一个元素等于的dict中的所有键x.因此我这样做(在Python 2.6上):

>>> [ k for k, v in d if v[0] == x ]
Run Code Online (Sandbox Code Playgroud)

我明白了

Traceback (most recent call last):
  File "", line 1, in 
ValueError: need more than 1 value to unpack

我怎么能纠正这个?

python list-comprehension

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

如何从数据库中获取最近24小时的记录

我有Orders存储用户订单的模型。我只想过滤order_started用户最近24小时内已发出的订单(字段)。我正在尝试更新以下视图:

def userorders(request):
    Orders = Orders.objects.using('db1').filter(order_owner=request.user).extra(select={'order_ended_is_null': 'order_ended IS NULL',},)
Run Code Online (Sandbox Code Playgroud)

订单模型具有以下字段:

order_uid = models.TextField(primary_key=True)
order_owner = models.TextField()
order_started = models.DateTimeField()
order_ended = models.DateTimeField(blank=True, null=True)
Run Code Online (Sandbox Code Playgroud)

如何添加额外的过滤器?

python django django-views

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

继续对新线路进行方法签名的公约

请考虑以下版本的代码:

def __init__(self, broker, group, offset='largest', commit_every_x_ms=1000,
             parts=None):
    #       ^
    pass
Run Code Online (Sandbox Code Playgroud)

VS

def __init__(self, broker, group, offset='largest',
        commit_every_t_ms=1000, parts=None):
    #  ^
    pass
Run Code Online (Sandbox Code Playgroud)

我认为第二个选项看起来更好,因为它可以节省具有非常大的名称的函数所需的行,但哪一个将被认为更pythonic?

python

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

string.split错误?蟒蛇

a = string.split("Test Test2 Test3"," ")
Run Code Online (Sandbox Code Playgroud)

这会返回一个错误:

Message File Name   Line    Position    
Traceback               
    <module>    C:\pyWiz.py 43      
AttributeError: 'module' object has no attribute 'split'                
Run Code Online (Sandbox Code Playgroud)

是的,我导入了字符串模块.为什么会这样?

python string

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

全球通知的数据库设计

我有一个通知系统,其中有各种类型的"评论","product_added"等,也有很多用户.

基于用户的朋友将在用户或他/她的朋友执行的动作时看到通知.问题是我必须保留一个朋友已阅读通知的记录,我已经有一个表格,我已经存储了:

notification_id,    
type_id ,   
item_id ,   
user_id ,   
owner_user_id , 
is_seen,
time_stamp, 
title_html, 
title_text, 
body_html,
body_text,  
href,
icon_url
Run Code Online (Sandbox Code Playgroud)

我应该使用数组来存储看到通知的所有朋友ID,is_seen还是应该创建一个新表notification_seen,我为每个看过该通知的朋友保留记录?

所有通知都会持续30天,还要记住,如果用户有超过200个朋友,然后将200个ID存储在一个数组中,然后检索它并打破阵列然后显示它们(根据我的说法,重要的是一个长程序).

那么任何人都可以建议哪一个更好的方式或更好的方式我不知道?

php mysql

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

Python:是否可以逐行执行

是否可以使用 Python 逐行运行代码。包括运行任何模块代码,在使用时,也可以一行一行地运行。

我想逐行运行一些代码,并观察每一行经过处理阶段的过程,并查看在发生某些操作时正在执行哪些代码。我很好奇某些值是如何传递给解释器的。

python

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

保留文件中的前 5 行

这就是我想做的......

我有一堆文本文件,需要浏览并只保留前 5 行。如果我这样做top,则输出到其中一部分的文件。我需要文件名与之前的文件名相同。

例如:file.name- 取前 5 行(删除第 5 行以下的所有内容),然后将文件另存为file.name. 有许多文件需要批量完成。

unix linux output

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

从一个Python列表中删除重复项,根据它修剪其他列表

我有一个很容易以丑陋的方式做的问题,但我想知道是否有更多的Pythonic方式.

说我有三个列表A,BC.

A = [1, 1, 2, 3, 4, 4, 5, 5, 3]
B = [1, 2, 3, 4, 5, 6, 7, 8, 9]
C = [1, 2, 3, 4, 5, 6, 7, 8, 9]
# The actual data isn't important.
Run Code Online (Sandbox Code Playgroud)

我需要删除列表中的所有副本A,但是当重复的条目被删除时,我想对应的索引从删除BC:

A = [1, 2, 3, 4, 5]
B = [1, 3, 4, 5, 7]
C = [1, 3, 4, 5, 7]
Run Code Online (Sandbox Code Playgroud)

通过将所有内容移动到新列表,这很容易做到更长的代码:

new_A = []
new_B …
Run Code Online (Sandbox Code Playgroud)

python duplicates

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

将列表拆分为大小递减的子列表

假设我有一个列表

list = [0,1,2,3]
Run Code Online (Sandbox Code Playgroud)

我如何将列表分成类似的内容

new_list = [[0,1,2,3],[1,2,3],[2,3],[3]]
Run Code Online (Sandbox Code Playgroud)

我尝试过使用:

def change(list):
    new_list = []
    for i in range(len(list)):
        total += [list:]
    return new_list
Run Code Online (Sandbox Code Playgroud)

但我得到的返回值为

 new_list = [0,1,2,3,1,2,3,2,3,3]
Run Code Online (Sandbox Code Playgroud)

非常感谢您的帮助,谢谢。

python list sublist

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

mysql ALTER 表查询中的 AFTER 关键字

当我看到以下形式的更改查询时,我正在浏览一些代码:

alter table table_name add column tags varchar(25) default null after some_field;
Run Code Online (Sandbox Code Playgroud)

阅读Table的 mysql 文档ALTER, AFTER 关键字的目的是

要在表行中的特定位置添加列,请使用 FIRST 或 AFTER col_name。默认情况下最后添加列。您还可以在 CHANGE 或 MODIFY 操作中使用 FIRST 和 AFTER 对表中的列进行重新排序。

何时应该使用此关键字?是否建议频繁运行它来更改具有大量(数百万)行的表?

mysql alter-table

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