我有许多对象需要链接到整数.这些对象是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已更改) .
我该如何将这些点值链接到整数.还有其他方法可以使用字典吗?
在解释器中,您只需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列表的类.我想在没有索引的情况下访问它时将其作为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 - 我猜是因为它是内置的?
我尝试使用 .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 中观察到。
在Ruby中,可以检查变量(对象),p my_obj因此它会将其打印为"深度"并尽可能详细.它对日志记录和调试很有用.在Python中我认为它是print my_obj,只是它没有打印很多,但<requests.sessions.Session object at 0x7febcb29b390>根本没用.
我该怎么做呢?
例如,
python
>> x = 1
>> x
1
Run Code Online (Sandbox Code Playgroud)
我很好奇x返回的方法/功能是什么1.我在问,因为我看到调用print x和简单之间存在差异x.
同样,有没有办法指定所谓的内容?IPython中是否存在此配置?
如何在 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) 默认情况下,当IPython显示一个对象时,它似乎正在使用__repr__.
__repr__在给定合适的环境的情况下,应该生成一个可用于重建对象的唯一字符串.这不同于__str__,它应该产生人类可读的输出.
现在假设我们已经编写了一个特定的类,我们希望IPython默认生成人类可读的输出(即没有显式调用print或__str__).我们不希望通过使我们的类的捏造它__repr__做__str__的工作.这将破坏规则.
有没有办法告诉IPython __str__默认为特定类调用?
是repr与str相同的上内置数值类型蟒蛇(int,bool,float,和complex),还是有(深奥?)的情况,其中两个可能会产生不同的结果?
关于SO的相关问题(例如本文)关注的是如何__repr__以及__str__可能以不同方式实现,并为字符串返回不同的值,但我找不到关于数字的实际实现的任何内容.
在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)
为什么是这样 ?