小编mar*_*eau的帖子

如何将Python字典转换为元组列表?

如果我有一个字典,如:

{ 'a': 1, 'b': 2, 'c': 3 }
Run Code Online (Sandbox Code Playgroud)

我怎样才能将它转换成这个?

[ ('a', 1), ('b', 2), ('c', 3) ]
Run Code Online (Sandbox Code Playgroud)

我怎么能把它转换成这个?

[ (1, 'a'), (2, 'b'), (3, 'c') ]
Run Code Online (Sandbox Code Playgroud)

python compatibility list iterable-unpacking

197
推荐指数
7
解决办法
18万
查看次数

实现嵌套字典的最佳方法是什么?

我有一个数据结构,基本上相当于嵌套字典.让我们说它看起来像这样:

{'new jersey': {'mercer county': {'plumbers': 3,
                                  'programmers': 81},
                'middlesex county': {'programmers': 81,
                                     'salesmen': 62}},
 'new york': {'queens county': {'plumbers': 9,
                                'salesmen': 36}}}
Run Code Online (Sandbox Code Playgroud)

现在,保持和创造这个是非常痛苦的; 每当我有一个新的州/县/专业时,我必须通过令人讨厌的try/catch块创建下层词典.而且,如果我想要遍历所有值,我必须创建恼人的嵌套迭代器.

我也可以使用元组作为键,如下:

{('new jersey', 'mercer county', 'plumbers'): 3,
 ('new jersey', 'mercer county', 'programmers'): 81,
 ('new jersey', 'middlesex county', 'programmers'): 81,
 ('new jersey', 'middlesex county', 'salesmen'): 62,
 ('new york', 'queens county', 'plumbers'): 9,
 ('new york', 'queens county', 'salesmen'): 36}
Run Code Online (Sandbox Code Playgroud)

这使得迭代值非常简单和自然,但是做聚合和查看字典的子集(例如,如果我只想逐个状态)这样做更具语法上的痛苦.

基本上,有时我想将嵌套字典视为平面字典,有时我想将其视为复杂的层次结构.我可以把它全部包装在一个类中,但似乎有人可能已经完成了这个.或者,似乎可能有一些非常优雅的语法结构来做到这一点.

我怎么能做得更好?

附录:我知道setdefault()但它并没有真正实现干净的语法.此外,您创建的每个子词典仍需要setdefault()手动设置.

python mapping dictionary autovivification data-structures

195
推荐指数
12
解决办法
9万
查看次数

如何根据名称查找类的所有子类?

我需要一种工作方法来获取从Python中的基类继承的所有类.

python subclass

194
推荐指数
6
解决办法
8万
查看次数

使用Python将UTC日期时间字符串转换为本地日期时间

我从来没有把时间转换成UTC.最近有一个请求要让我的应用程序能够识别时区,而且我一直在圈子里跑.关于将本地时间转换为UTC的大量信息,我发现它相当基本(也许我也做错了),但我找不到任何有关将UTC时间轻松转换为最终用户时区的信息.

简而言之,Android应用程序向我发送(appengine app)数据,在该数据中是一个时间戳.要将时间戳存储到我正在使用的时间:

datetime.utcfromtimestamp(timestamp)
Run Code Online (Sandbox Code Playgroud)

这似乎有效.当我的应用程序存储数据时,它将提前5小时存储(我是EST -5)

数据存储在appengine的BigTable上,当检索到它时,它就像一个字符串一样:

"2011-01-21 02:37:21"
Run Code Online (Sandbox Code Playgroud)

如何在用户正确的时区将此字符串转换为DateTime?

此外,用户时区信息的推荐存储是什么?(你怎么通常存储TZ信息,即:"-5:00"或"EST"等等等等),我敢肯定的答案,我的第一个问题可能包含一个参数的回答第二个.

python datetime utc localtime

193
推荐指数
9
解决办法
30万
查看次数

字典和默认值

假设connectionDetails是一个Python字典,那么重构这样的代码的最好,最优雅,最"pythonic"的方法是什么?

if "host" in connectionDetails:
    host = connectionDetails["host"]
else:
    host = someDefaultValue
Run Code Online (Sandbox Code Playgroud)

python dictionary coding-style

193
推荐指数
8
解决办法
16万
查看次数

是否可以在python列表理解中使用'else'?

这是我试图变成列表理解的代码:

table = ''
for index in xrange(256):
    if index in ords_to_keep:
        table += chr(index)
    else:
        table += replace_with
Run Code Online (Sandbox Code Playgroud)

有没有办法将else语句添加到此理解中?

table = ''.join(chr(index) for index in xrange(15) if index in ords_to_keep)
Run Code Online (Sandbox Code Playgroud)

python list-comprehension

190
推荐指数
4
解决办法
10万
查看次数

省略号[...]在列表中的含义是什么?

我在蟒蛇玩耍.我在IDLE中使用了以下代码:

p  = [1, 2]
p[1:1] = [p]
print p
Run Code Online (Sandbox Code Playgroud)

输出是:

[1, [...], 2]
Run Code Online (Sandbox Code Playgroud)

这是什么[…]?有趣的是,我现在可以将其用作无限列表列表,即

p[1][1][1]....
Run Code Online (Sandbox Code Playgroud)

只要我愿意,我就可以写上面的内容,但它仍然有用.

编辑:

  • 它在记忆中如何表现?
  • 有什么用?某些有用的案例会有所帮助.
  • 任何官方文档的链接都非常有用.

python list ellipsis python-2.7 python-3.x

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

你如何以编程方式设置属性?

假设我有一个Python对象x和一个字符串s,我怎么设置属性sx?所以:

>>> x = SomeObject()
>>> attr = 'myAttr'
>>> # magic goes here
>>> x.myAttr
'magic'
Run Code Online (Sandbox Code Playgroud)

什么是魔术?顺便说一下,这个目的是缓存呼叫x.__getattr__().

python attributes object

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

只读文件的第一行?

你如何只用Python的字符串获取文件的第一行?

python file

184
推荐指数
7
解决办法
29万
查看次数

将Python字典转换为List

可能重复:
如何将Python字典转换为元组列表?

我正在尝试将Python字典转换为Python列表,以便执行一些计算.

#My dictionary
dict = {}
dict['Capital']="London"
dict['Food']="Fish&Chips"
dict['2012']="Olympics"

#lists
temp = []
dictList = []

#My attempt:
for key, value in dict.iteritems():
    aKey = key
    aValue = value
    temp.append(aKey)
    temp.append(aValue)
    dictList.append(temp) 
    aKey = ""
    aValue = ""
Run Code Online (Sandbox Code Playgroud)

这是我的尝试......但我无法弄清楚什么是错的?

python dictionary list

180
推荐指数
7
解决办法
56万
查看次数