相关疑难解决方法(0)

什么是Python中的"命名元组"?

阅读Python 3.1中更改,我发现了一些......意外的:

sys.version_info元组现在是一个命名元组:

我之前从未听说过命名元组,我认为元素可以用数字(如元组和列表)或键(如dicts)索引.我从没想过他们可以两种方式编入索引.

因此,我的问题是:

  • 什么叫元组?
  • 怎么用?
  • 为什么/何时应该使用命名元组而不是普通元组?
  • 为什么/何时应该使用普通元组而不是命名元组?
  • 是否有任何类型的"命名列表"(命名元组的可变版本)?

python tuples namedtuple

843
推荐指数
9
解决办法
32万
查看次数

将嵌套的Python dict转换为对象?

我正在寻找一种优雅的方法,使用一些嵌套的dicts和列表(即javascript样式的对象语法)在dict上使用属性访问来获取数据.

例如:

>>> d = {'a': 1, 'b': {'c': 2}, 'd': ["hi", {'foo': "bar"}]}
Run Code Online (Sandbox Code Playgroud)

应该可以通过这种方式访问​​:

>>> x = dict2obj(d)
>>> x.a
1
>>> x.b.c
2
>>> x.d[1].foo
bar
Run Code Online (Sandbox Code Playgroud)

我认为,如果没有递归,这是不可能的,但是什么是获得dicts的对象样式的好方法?

python dictionary object

509
推荐指数
20
解决办法
23万
查看次数

Python中的类C结构

有没有办法在Python中方便地定义类似C的结构?我厌倦了写下这样的东西:

class MyStruct():
    def __init__(self, field1, field2, field3):
        self.field1 = field1
        self.field2 = field2
        self.field3 = field3
Run Code Online (Sandbox Code Playgroud)

python struct

416
推荐指数
16
解决办法
48万
查看次数

如何使用点"." 访问字典成员?

如何通过点"."访问Python字典成员?

例如,mydict['val']我不想写作,而是写作mydict.val.

此外,我想以这种方式访问​​嵌套的dicts.例如

mydict.mydict2.val 
Run Code Online (Sandbox Code Playgroud)

会参考

mydict = { 'mydict2': { 'val': ... } }
Run Code Online (Sandbox Code Playgroud)

python syntax dictionary nested

230
推荐指数
17
解决办法
13万
查看次数

如何用Python3读写INI文件?

我需要使用Python3 读取,编写和创建一个INI文件.

FILE.INI

default_path = "/path/name/"
default_file = "file.txt"
Run Code Online (Sandbox Code Playgroud)

Python文件:

#    Read file and and create if it not exists
config = iniFile( 'FILE.INI' )

#    Get "default_path"
config.default_path

#    Print (string)/path/name
print config.default_path

#    Create or Update
config.append( 'default_path', 'var/shared/' )
config.append( 'default_message', 'Hey! help me!!' )
Run Code Online (Sandbox Code Playgroud)

更新的 FILE.INI

default_path    = "var/shared/"
default_file    = "file.txt"
default_message = "Hey! help me!!"
Run Code Online (Sandbox Code Playgroud)

python ini python-3.x

100
推荐指数
6
解决办法
15万
查看次数

使用Python类作为数据容器

有时将相关数据聚集在一起是有意义的.我倾向于用dict这样做,例如,

self.group = dict(a=1, b=2, c=3)
print self.group['a']
Run Code Online (Sandbox Code Playgroud)

我的一位同事更喜欢创建一个班级

class groupClass(object):
    def __init__(a, b, c):
        self.a = a
        self.b = b
        self.c = c
self.group = groupClass(1, 2, 3)
print self.group.a
Run Code Online (Sandbox Code Playgroud)

请注意,我们没有定义任何类方法.

我喜欢使用dict,因为我喜欢最小化代码行数.我的同事认为如果使用类,代码更具可读性,并且将来更容易向类中添加方法.

你更喜欢哪个?为什么?

python struct dictionary class

48
推荐指数
8
解决办法
5万
查看次数

Python:如何实现__getattr __()?

我的班级有一个词典,例如:

class MyClass(object):
    def __init__(self):
        self.data = {'a': 'v1', 'b': 'v2'}
Run Code Online (Sandbox Code Playgroud)

然后我想使用dict的密钥和MyClass实例来访问dict,例如:

ob = MyClass()
v = ob.a   # Here I expect ob.a returns 'v1'
Run Code Online (Sandbox Code Playgroud)

我知道这应该由__getattr__实现,但我是Python的新手,我不知道如何实现它.

python

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

Pandas列访问w /列名称包含空格

如果我导入或创建一个不包含空格的pandas列,我可以这样访问它:

df1 = DataFrame({'key': ['b', 'b', 'a', 'c', 'a', 'a', 'b'],
                 'data1': range(7)})

df1.data1
Run Code Online (Sandbox Code Playgroud)

这将为我返回该系列.但是,如果该列的名称中有空格,则无法通过该方法访问该列:

df2 = DataFrame({'key': ['a','b','d'],
                 'data 2': range(3)})

df2.data 2      # <--- not the droid i'm looking for.
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用.xs()访问它:

df2.xs('data 2', axis=1)
Run Code Online (Sandbox Code Playgroud)

还有的是另一种方式.我用谷歌搜索它疯了,想不出任何其他方式谷歌它.我在这里阅读了包含"column","string"和"pandas"的所有96条目,并且找不到以前的答案.这是唯一的方法,还是有更好的东西?

谢谢!

string pandas

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

通过属性和索引访问递归访问dict?

我希望能够做到这样的事情:

from dotDict import dotdictify

life = {'bigBang':
           {'stars':
               {'planets': []}
           }
       }

dotdictify(life)

# This would be the regular way:
life['bigBang']['stars']['planets'] = {'earth': {'singleCellLife': {}}}
# But how can we make this work?
life.bigBang.stars.planets.earth = {'singleCellLife': {}}

#Also creating new child objects if none exist, using the following syntax:
life.bigBang.stars.planets.earth.multiCellLife = {'reptiles':{},'mammals':{}}
Run Code Online (Sandbox Code Playgroud)

我的动机是改进代码的简洁性,如果可能的话,使用与Javascript类似的语法来访问JSON对象,以实现高效的跨平台开发.(我也使用Py2JS和类似的.)

python oop dictionary getattr

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

自我的意义.__ dict__ =在课堂定义中的自我

我正在尝试理解以下代码片段:

class Config(dict):
    def __init__(self):
        self.__dict__ = self
Run Code Online (Sandbox Code Playgroud)

这条线的目的是self.__dict__ = self什么?我想它会__dict__使用简单地返回对象本身的东西来覆盖默认函数,但是由于ConfigdictI 继承而无法找到与默认行为的任何差异.

python

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

标签 统计

python ×9

dictionary ×4

struct ×2

class ×1

getattr ×1

ini ×1

namedtuple ×1

nested ×1

object ×1

oop ×1

pandas ×1

python-3.x ×1

string ×1

syntax ×1

tuples ×1