相关疑难解决方法(0)

索引python dict由对象或两个浮点数

我有许多对象需要链接到整数.这些对象是ArcGIS Point对象(确切地说它们不相关),它将点的X和Y值存储为浮点数.

我需要记录下来,例如:

Point(X = 2.765, Y = 3.982) -> 2
Point(X = 33.9, Y = 98.45) -> 7
Point(X = 1.23, Y = 2.43) -> 9
Point(X = 8.342, Y = 6.754) -> 5
Run Code Online (Sandbox Code Playgroud)

然后,我需要能够通过X和Y值查找结果值.我已经尝试使用Point对象作为字典的键,但这不起作用,因为当我从X和Y值重新创建点对象时它不再正常查找(可能是因为对象ID已更改) .

我该如何将这些点值链接到整数.还有其他方法可以使用字典吗?

python floating-point hash dictionary

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

在Python解释器中,>> >> some_object`和`>>>打印some_object`有什么区别?

在解释器中,您只需a = [1, 2, 3, u"hellö"]在解释器提示符处写入对象的名称,例如列表,如下所示:

>>> a
[1, 2, 3, u'hell\xf6']
Run Code Online (Sandbox Code Playgroud)

或者你可以这样做:

>>> print a
[1, 2, 3, u'hell\xf6']
Run Code Online (Sandbox Code Playgroud)

这似乎相当于列表.目前我正在使用hdf5来管理一些数据,我意识到上面提到的两种方法之间存在差异.鉴于:

with tables.openFile("tutorial.h5", mode = "w", title = "Some Title") as h5file:
    group = h5file.createGroup("/", 'node', 'Node information')
    tables.table = h5file.createTable(group, 'readout', Node, "Readout example")
Run Code Online (Sandbox Code Playgroud)

的输出

print h5file
Run Code Online (Sandbox Code Playgroud)

不同于

>>> h5file
Run Code Online (Sandbox Code Playgroud)

所以我想知道是否有人可以解释Python在这两种情况下的行为差异?

python printing behavior

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

在Python中模拟列表

我正在使用一个模拟python列表的类.我想在没有索引的情况下访问它时将其作为python list()返回.

使用普通列表():

>>> a = [1,2,3]
>>> a
[1,2,3]

我得到的,基本上:

>>> a = MyList([1,2,3])
>>> a
<MyList object at 0xdeadbeef>

我无法弄清楚哪种dunder方法(如果有的话)可以让我自定义这种行为?

我认为__得到__?虽然list()没有实现get/set/delete - 我猜是因为它是内置的?

python types list

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

Python:用反斜杠连接元组

我尝试使用 .join 方法连接两个字符串的元组,如下所示。

>>> my_tuple = ("parent", "child")
>>> "\\".join(my_tuple)
Run Code Online (Sandbox Code Playgroud)

我希望它会回来parent\child,然而,它又回来了parent\\child

为什么是这样?如果我尝试简单地打印它,则用另一个反斜杠转义反斜杠效果很好。

>>> print "parent\\child"
>>> parent\child
Run Code Online (Sandbox Code Playgroud)

在 Windows 7 上的 Python 2.7.3 中观察到。

python join tuples backslash

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

通过打印来检查变量(对象)

在Ruby中,可以检查变量(对象),p my_obj因此它会将其打印为"深度"并尽可能详细.它对日志记录和调试很有用.在Python中我认为它是print my_obj,只是它没有打印很多,但<requests.sessions.Session object at 0x7febcb29b390>根本没用.

我该怎么做呢?

ruby python

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

当我在Python或IPython控制台时,当我返回输出时调用什么?

例如,

python
>> x = 1
>> x
1
Run Code Online (Sandbox Code Playgroud)

我很好奇x返回的方法/功能是什么1.我在问,因为我看到调用print x和简单之间存在差异x.

同样,有没有办法指定所谓的内容?IPython中是否存在此配置?

python ipython

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

Python 3.4 中的类对象数组

如何在 Python 3.4 中声明类对象数组?在 C++ 中,我可以通过以下方式轻松完成:

class Segment
{
public:

    long int left, right;

    Segment()
    {
        left = 0;
        right = 0;
    }

    void show_all()
    {
        std::cout << left << " " << right << endl;
    }
};

int main()
{
    const int MaxN = 10;
    Segment segment[MaxN];

    for(int i = 0; i < MaxN; i++)
    {
        std::cin >> segment[i].left;
        std::cin >> segment[i].right;
    }
}
Run Code Online (Sandbox Code Playgroud)

在 Python 中,我几乎相同,但找不到创建类对象列表并像在 C++ 中一样遍历它的方法。

class Segment:

    def __init__(self):
        self.left = 0
        self.right = 0 …
Run Code Online (Sandbox Code Playgroud)

python arrays list

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

告诉IPython使用对象的`__str __而不是`__repr__`来输出

默认情况下,当IPython显示一个对象时,它似乎正在使用__repr__.

__repr__在给定合适的环境的情况下,应该生成一个可用于重建对象的唯一字符串.这不同于__str__,它应该产生人类可读的输出.

现在假设我们已经编写了一个特定的类,我们希望IPython默认生成人类可读的输出(即没有显式调用print__str__).我们不希望通过使我们的类的捏造它__repr____str__的工作.这将破坏规则.

有没有办法告诉IPython __str__默认为特定类调用?

repr ipython

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

在Pythons内置数值类型上,repr和str总是相同吗?

reprstr相同的上内置数值类型蟒蛇(int,bool,float,和complex),还是有(深奥?)的情况,其中两个可能会产生不同的结果?

关于SO的相关问题(例如本文)关注的是如何__repr__以及__str__可能以不同方式实现,并为字符串返回不同的值,但我找不到关于数字的实际实现的任何内容.

python representation

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

Python-连接字符串以包含单个反斜杠

在Python 2.6中,我需要通过串联创建一个字符串,并通过INTRANET\一个userid jDoe来获得string INTRANET\jDoe。该字符串将成为SQL查询的一部分。我尝试了多种方法,但是最终得到了结果INTRANET\\jDoe,因此我的查询未返回任何结果。

我想做这个:

a = 'INTRANET\\'
b = 'jDoe'
c = a+b   ### want to get c as 'INTRANET\jDoe', not 'INTRANET\\jDoe'
Run Code Online (Sandbox Code Playgroud)

谢谢


问题似乎有些不同:

当我打印c时,得到“ INTRANET \ jDoe”。但是,当我将c附加到列表(将在sql查询中使用)时,如下所示:

list1 = []
list1.append(c)
print list1

>>>['INTRANET\\jDoe']
Run Code Online (Sandbox Code Playgroud)

为什么是这样 ?

python

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