javascript

java

python

c#

node.js

reactjs

android

php

c++

ruby-on-rails

html

jquery

git

css

ios

sql

.net

c

<img src="//i.stack.imgur.com/bk9VA.png" alt="" class="sponsor-tag-img" width="18" height="16"/>android

string

Python:元组/字典作为键,select,s

假设我有大量不同颜色的水果,例如24个蓝色香蕉,12个青苹果,0个蓝色草莓等。我希望将它们组织在Python的数据结构中,以便于选择和排序。 我的想法是将它们放入一个以元组为键的字典中,例如,

{ ('banana',    'blue' ): 24,
  ('apple',     'green'): 12,
  ('strawberry','blue' ): 0,
  ...
}

甚至是字典,例如,

{ {'fruit': 'banana',    'color': 'blue' }: 24,
  {'fruit': 'apple',     'color': 'green'}: 12,
  {'fruit': 'strawberry','color': 'blue' }: 0,
  ...
}

例如,我想要检索所有蓝色水果或所有颜色的香蕉的列表,或者通过水果的名称对该字典进行排序。 有没有办法以干净的方式做到这一点?

很可能是以元组为键的字典不是处理这种情况的正确方法。

欢迎所有建议!

trans by 2019-08-23T01:24:28Z

从Python列表或tup中明确选择项目

我有以下Python列表(也可以是一个元组):

myList = ['foo', 'bar', 'baz', 'quux']

我可以说

>>> myList[0:3]
['foo', 'bar', 'baz']
>>> myList[::2]
['foo', 'baz']
>>> myList[1::2]
['bar', 'quux']

如何明确选择索引没有特定模式的项目? 例如,我想选择[0,2,3].或者从1000个项目的非常大的列表中,我想选择[87, 342, 217, 998, 500].是否有一些Python语法可以做到这一点? 看起来像:

>>> myBigList[87, 342, 217, 998, 500]
trans by 2019-08-14T04:19:46Z

python - 在元组定义中使用尾随逗号的语法规则是什么?

在单个元素元组的情况下,需要尾随逗号。

a = ('foo',)

那个有多个元素的元组怎么样? 似乎尾随逗号是否存在,它们都是有效的。 它是否正确? 在我看来,使用尾随逗号更容易编辑。 这是一种糟糕的编码风格吗?

a = ('foo1', 'foo2')
b = ('foo1', 'foo2',)
trans by 2019-08-13T23:36:47Z

c ++ - 通过'tuple'和'tie'实现比较运算符,这是一个好主意?

(注意:std::pairoperator<可以从Boost或C ++ 11中获取。)
在编写只有两个元素的小结构时,我有时倾向于选择std::pair,因为所有重要的东西都已经为该数据类型完成,例如operator<用于严格弱序。
但缺点是几乎没用的变量名。 即使我自己创造了那个typedef,我也不记得2天后firstsecond究竟是什么,特别是如果它们都属于同一类型。 这对两个以上的成员来说更糟糕,因为嵌套ties非常糟糕。
另一种选择是tuple,无论是来自Boost还是C ++ 11,但它看起来并不是更好,更清晰。 所以我回去自己编写结构,包括任何需要的比较运算符。
因为特别是T&可能非常麻烦,我想通过仅依靠为tuple定义的操作来绕过这整个混乱:

tie的例子,例如tie。 对于严格弱序:

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从传递的参数中生成tupletuple引用。)


编辑:从@DeadMG到私有继承tie的建议并不是一个糟糕的建议,但它有一些缺点:

  • 如果运营商是独立的(可能是朋友),我需要公开继承
  • 通过铸造,我的功能/操作员(特别是tie)可以轻松绕过
  • 使用tie解决方案,如果他们对订购不重要,我可以省略某些成员

我需要考虑这个实现有什么缺点吗?

trans by 2019-08-11T04:47:28Z

c# - 元组设计要解决的要求是什么?

我正在研究元组的新C#特性。 我很好奇,元组设计要解决什么问题?

您在应用中使用了什么元组?

更新

感谢到目前为止的答案,让我看看我是否在脑子里直截了当。已经指出了元组的一个很好的例子作为坐标。 这看起来不错吗?

var coords = Tuple.Create(geoLat,geoLong);

然后像这样使用元组:

var myLatlng = new google.maps.LatLng("+ coords.Item1 + ", "+ coords.Item2 + ");

那是对的吗?

trans by 2019-08-04T10:00:35Z

python - 什么是解包元组的pythonic方法?

这个问题在这里已有答案:

  • 用Python解压缩列表?                                     3个答案

这很难看。 什么是Pythonic方式呢?

import datetime

t= (2010, 10, 2, 11, 4, 0, 2, 41, 0)
dt = datetime.datetime(t[0], t[1], t[2], t[3], t[4], t[5], t[6])
trans by 2019-08-04T02:13:42Z

python - 为什么元组在内存中占用的空间少于列表?

list在Python中占用更少的内存空间:

>>> a = (1,2,3)
>>> a.__sizeof__()
48

lists需要更多的内存空间:

>>> b = [1,2,3]
>>> b.__sizeof__()
64

Python内存管理内部会发生什么?

trans by 2019-08-01T18:32:25Z

元组(或数组)作为C#中的字典键

我想在C#中创建一个Dictionary查找表。 我需要将一个3元组的值解析为一个字符串。 我尝试使用数组作为键,但这不起作用,我不知道还能做什么。 在这一点上,我正在考虑制作一本词典字典词典,但这看起来可能不是很漂亮,尽管我会在javascript中这样做。

trans by 2019-08-01T15:08:26Z

python命名为字典的元组

我在python中有一个名为tuple的类

class Town(collections.namedtuple('Town', [
    'name', 
    'population',
    'coordinates',
    'population', 
    'capital', 
    'state_bird'])):
    # ...

我想做的是将其变成字典。 我承认python不是我强大的语言之一。 关键是我不希望它与我所拥有的字段的名称或数字紧密相关。

有没有办法写它,以便我可以添加更多的字段,或传递一个完全不同的命名元组并获得一个字典。

编辑:我不能改变原来的类定义,因为它在别人的代码中。 所以我需要一个城镇的实例并将其转换为字典。

trans by 2019-07-27T11:19:38Z

c# - System.ValueTuple和System.Tuple有什么区别?

我反编译了一些C#7库,看到了ValueTuple泛型。 什么是ValueTuples,为什么不是Tuple呢?

  • [https://docs.microsoft.com/en-gb/dotnet/api/system.tuple]
  • [https://docs.microsoft.com/en-gb/dotnet/api/system.valuetuple]
trans by 2019-07-23T05:53:31Z

元组 - 为什么在python 0中,0 ==(0,0)等于(0,False)

在Python中(我只使用Python 3.6进行了检查,但我相信它应该适用于许多以前的版本):

(0, 0) == 0, 0   # results in a two element tuple: (False, 0)
0, 0 == (0, 0)   # results in a two element tuple: (0, False)
(0, 0) == (0, 0) # results in a boolean True

但:

a = 0, 0
b = (0, 0)
a == b # results in a boolean True

为什么两种方法的结果不同? 相等运算符是否以不同方式处理元组?

trans by 2019-06-30T01:42:50Z

Python将项添加到tup

我有一些object.ID-s,我尝试将其作为元组存储在用户会话中。 当我添加第一个它工作,但元组看起来像(u'2',)但当我尝试添加新的使用mytuple = mytuple + new.id得到错误can only concatenate tuple (not "unicode") to tuple

trans by 2019-06-28T03:59:36Z

scala - Tuple在Map Operations中解包

我经常发现自己与元组的Lists,Seqs和Iterators一起工作,并希望做类似以下的事情,

val arrayOfTuples = List((1, "Two"), (3, "Four"))
arrayOfTuples.map { (e1: Int, e2: String) => e1.toString + e2 }

但是,编译器似乎从不同意这种语法。 相反,我最终写作,

arrayOfTuples.map { 
    t => 
    val e1 = t._1
    val e2 = t._2
    e1.toString + e2 
}

这真是太傻了。 我怎么能绕过这个?

trans by 2019-06-24T07:53:16Z

为什么我不能在python中使用列表作为dict键?

关于什么可以/不能用作python dict的键,我有点困惑。

dicked = {}
dicked[None] = 'foo'     # None ok
dicked[(1,3)] = 'baz'    # tuple ok
import sys
dicked[sys] = 'bar'      # wow, even a module is ok !
dicked[(1,[3])] = 'qux'  # oops, not allowed

所以一个元组是一个不可变的类型,但是如果我在其中隐藏一个列表,那么它就不能成为一个键......难道我不能轻易地隐藏模块中的列表吗?

我有一个模糊的想法,关键是必须“可以”,但我只是承认自己对技术细节的无知; 我不知道这里到底发生了什么。 如果您尝试使用列表作为键,将哈希作为其内存位置,会出现什么问题?

trans by 2019-06-24T06:04:06Z

python - 访问lis中的元组中的值

[(1,2), (2,3), (4,5), (3,4), (6,7), (6,7), (3,8)]

如何从此列表中的每个元组返回第二个值?

期望的输出:

[2, 3, 5, 4, 7, 7, 8]
trans by 2019-06-21T13:51:11Z

.NET的未来版本是否会支持C#中的元组?

.Net 3.5不支持元组。 太糟糕了,但不确定.net的未来版本是否会支持元组?

trans by 2019-06-14T14:15:38Z

在Python中将元组列表转换为多个列表

假设我有一个元组列表,我想转换为多个列表。

例如,元组列表是

[(1,2),(3,4),(5,6),]

Python中是否有任何内置函数将其转换为:

[1,3,5],[2,4,6]

这可以是一个简单的程序。 但我只是对Python中这种内置函数的存在感到好奇。

trans by 2019-06-10T17:58:08Z

Python:改变tup中的值

我是python的新手,所以这个问题可能有点基础。 我有一个名为275的元组,其中包含以下内容:

('275', '54000', '0.0', '5000.0', '0.0')

我想在这个元组中更改第一个值(即275),但我知道元组是不可变的,所以values[0] = 200将无效。 我怎样才能做到这一点?

trans by 2019-06-04T16:27:58Z

循环 - Python:dict列表,如果存在则递增dict值,如果不追加新的di

我想做那样的事情。

list_of_urls = ['http://www.google.fr/', 'http://www.google.fr/', 
                'http://www.google.cn/', 'http://www.google.com/', 
                'http://www.google.fr/', 'http://www.google.fr/', 
                'http://www.google.fr/', 'http://www.google.com/', 
                'http://www.google.fr/', 'http://www.google.com/', 
                'http://www.google.cn/']

urls = [{'url': 'http://www.google.fr/', 'nbr': 1}]

for url in list_of_urls:
    if url in [f['url'] for f in urls]:
         urls[??]['nbr'] += 1
    else:
         urls.append({'url': url, 'nbr': 1})

我能怎么做 ? 我不知道是否应该使用元组编辑它或找出元组指示?

有帮助吗?

trans by 2019-06-03T09:53:18Z

来自元组的JavaScript变量赋值

在Python 2和Python 3等其他语言中,您可以为元组变量定义和赋值,并检索它们的值,如下所示:

tuple = ("Bob", 24)
name, age = tuple
print(name)           #name evaluates to Bob
print(age)            #age evaluates to 24

JavaScript中有类似的东西吗? 或者我只需要用数组的丑陋方式来做:

tuple = ["Bob", 24]
name = tuple[0]       //name Evaluates to Bob
age = tuple[1]        //age Evaluates to 24

有没有更好的方法来模拟JavaScript 5中的Python元组?

trans by 2019-05-28T00:09:47Z

1 2 3 下一页 共3页