Tag: 元组

用多个__init__参数inheritancePython元组

以下代码工作: class Foo(tuple): def __init__(self, b): super(Foo, self).__init__(tuple(b)) if __name__ == '__main__': print Foo([3, 4]) $ python play.py play.py:4: DeprecationWarning: object.__init__() takes no parameters super(Foo, self).__init__(tuple(b)) (3, 4) 但不是以下内容: class Foo(tuple): def __init__(self, a, b): super(Foo, self).__init__(tuple(b)) if __name__ == '__main__': print Foo(None, [3, 4]) $ python play.py Traceback (most recent call last): File "play.py", […]

漂亮的std ::元组

这是我之前关于漂亮打印STL容器的问题的一个后续,为此我们开发了一个非常优雅和全面的通用解决scheme。 在接下来的步骤中,我想包含std::tuple<Args…>漂亮打印,使用可变参数模板(所以这完全是C ++ 11)。 对于std::pair<S,T> ,我只是说 std::ostream & operator<<(std::ostream & o, const std::pair<S,T> & p) { return o << "(" << p.first << ", " << p.second << ")"; } 什么是打印元组的类似结构? 我尝试了各种各样的模板参数堆栈解包,传递索引,并使用SFINAE来发现当我在最后一个元素,但没有成功。 我不会用我破碎的代码来加重你的负担。 问题描述有希望足够简单。 基本上,我想要以下行为: auto a = std::make_tuple(5, "Hello", -0.1); std::cout << a << std::endl; // prints: (5, "Hello", -0.1) 与上一个问题一样包含相同级别的通用性(char / wchar_t,一对分隔符)!

为什么元组可以包含可变项目?

如果一个元组是不可变的,为什么它可以包含可变项目? 看起来是一个矛盾,当一个可变项如列表被修改时,它所属的元组保持不变。

转换一个Scala列表到一个元组?

我怎样才能将(说)3个元素的列表转换成3的元组? 例如,假设我有val x = List(1, 2, 3) ,我想将其转换为(1, 2, 3) 。 我该怎么做?

为什么在variables名称后添加尾随逗号使其成为一个元组?

我想知道为什么在variables名(在这种情况下是一个string)之后添加尾随逗号使其成为一个tuple 。 即 >>> abc = 'mystring', >>> print(abc) ('mystring',) 当我打印abc它返回tuple ('mystring',) 。

通过“tuple”和“tie”来实现比较运算符,这是一个好主意吗?

(注: tuple和tie可以从Boost或C ++ 11中取得) 在编写只有两个元素的小型结构时,我有时会倾向于select一个std::pair ,因为所有重要的东西都已经为该数据types完成了,比如operator< for strict-weak-ordering。 缺点虽然是几乎没用的variables名称。 即使我自己创build了typedef ,两天之后我也不会记得first和second是什么,特别是如果它们是同一types的话。 这对于两个以上的成员来说更糟,因为嵌套pair非常糟糕。 另一种select是从Boost或C ++ 11中得到一个tuple ,但是看起来并没有更好更清晰。 所以我回到自己编写结构,包括任何需要的比较运算符。 由于特别是operator<可能相当麻烦,所以我想通过仅仅依赖于为tuple定义的操作来规避这个混乱: operator<例如严格弱sorting的例子: bool operator<(MyStruct const& lhs, MyStruct const& rhs){ return std::tie(lhs.one_member, lhs.another, lhs.yet_more) < std::tie(rhs.one_member, rhs.another, rhs.yet_more); } ( tie从所传递的参数构成T&引用。) 编辑 :从@DeadMG私人从tupleinheritance的build议不是一个坏的,但它有一些缺点: 如果运营商是独立的(可能是朋友),我需要公开inheritance 通过投射,我的function/操作员(特别是operator= )可以轻松绕过 有了这个tie解决scheme,如果他们对订购无关紧要,我可以省略某些成员 这个实现有什么缺点,我需要考虑吗?

在Java中使用对或2元组

我在Java中的哈希表将受益于具有元组结构的值。 我可以在Java中使用哪种数据结构来做到这一点? Hashtable<Long, Tuple<Set<Long>,Set<Long>>> table = …

如何交换python元组(a,b)=(b,a)中的成员在内部工作?

In [55]: a = 5 In [56]: b = 6 In [57]: (a, b) = (b, a) In [58]: a Out[58]: 6 In [59]: b Out[59]: 5 如何交换a和b的值在内部工作? 它绝对不使用临时variables。

Python元组尾随逗号语法规则

在单个元素元组的情况下,尾部的逗号是必需的。 a = ('foo',) 那么多元素的元组呢? 看起来尾随的逗号是否存在,都是有效的。 它是否正确? 在我看来,后面的逗号更容易编辑。 这是一种糟糕的编码风格吗? a = ('foo1', 'foo2') b = ('foo1', 'foo2',)

元组比较在Python中如何工作?

我一直在阅读核心Python编程书籍,作者展示了一个例子: (4, 5) < (3, 5) # Equals false 所以,我想知道,为什么它等于错误? python如何比较这两个元组? 顺便说一句,这不是在书中解释。