标签: ordereddictionary

将 Python 列表转换为有序的唯一值

我遇到许多任务,需要过滤 python (2.7) 列表以仅保留有序的唯一值。我通常的方法是使用odereddictfrom 集合:

from collections import OrderedDict

ls = [1,2,3,4,1,23,4,12,3,41]

ls = OrderedDict(zip(ls,['']*len(ls))).keys()

print ls
Run Code Online (Sandbox Code Playgroud)

输出是:

[1,2,3,4,23,12,41]

有没有其他最先进的方法可以在Python中做到这一点?

  • 注意 - 输入和输出应如下所示list

编辑- 方法的比较可以在这里找到: https: //www.peterbe.com/plog/uniqifiers-benchmark

同时最好的解决方案是:

def get_unique(seq):
    seen = set()
    seen_add = seen.add
    return [x for x in seq if not (x in seen or seen_add(x))]
Run Code Online (Sandbox Code Playgroud)

python list set ordereddictionary python-2.7

4
推荐指数
1
解决办法
4795
查看次数

OrderedDict 如何在 Python 中保持秩序

我很好奇集合库中的 OrderedDict如何保持密钥/对顺序?我在网上看了一圈,找不到答案。

python dictionary ordereddictionary data-structures

4
推荐指数
1
解决办法
175
查看次数

来自有序字典的 Python Json

我正在尝试创建一个嵌套的 Json 结构,如下所示:

示例 Json:

      {
        "id" : "de",
        "Key" : "1234567",
        "from" : "test@test.com",
        "expires" : "2018-04-25 18:45:48.3166159",
        "command" : "method.exec",
        "params" : {
          "method" : "cmd",
          "Key" : "default",
          "params" : {
            "command" : "testing 23"
          }
        }
Run Code Online (Sandbox Code Playgroud)

我正在尝试从 OrderedDict 中执行此操作。我不确定构造 OrderedDict 以便生成正确的 Json 的正确方法。

Python代码:

json_payload = OrderedDict(
                            [('id', id),
                                ('Key', keystore),
                                ('from', 'test@test.com'),
                                ('expires', expires),
                                ('command', 'method.exec')]

                              # What goes here for the params section??
                           )
print json.dumps(json_payload, indent=4, default=str)
Run Code Online (Sandbox Code Playgroud)

python json ordereddictionary

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

best_state 在 pytorch 训练期间随模型变化

我想保存最好的模型,然后在测试期间加载它。所以我使用了以下方法:

def train():  
    #training steps …  
    if acc > best_acc:  
        best_state = model.state_dict()  
        best_acc = acc
    return best_state  
Run Code Online (Sandbox Code Playgroud)

然后,在我使用的主函数中:

model.load_state_dict(best_state)  
Run Code Online (Sandbox Code Playgroud)

恢复模型。

但是,我发现 best_state 总是与训练时的最后一个状态相同,而不是最佳状态。有谁知道原因以及如何避免它?

顺便说一下,我知道我可以使用torch.save(the_model.state_dict(), PATH)然后通过 the_model.load_state_dict(torch.load(PATH)). 但是,我不想将参数保存到文件中,因为训练和测试函数在一个文件中。

python ordereddictionary pytorch

4
推荐指数
1
解决办法
864
查看次数

指定索引处的 OrderedDictionary 键名称

给定一个有序字典,我想获取索引 0 处的键。我当然可以执行一个循环,获取第一次迭代的键并立即跳出循环。但我想知道是否有办法直接做到这一点?我的 Google-Fu 没有发现任何东西,在黑暗中的一些拍摄也失败了。我尝试过类似的事情

$hash[0].Name
Run Code Online (Sandbox Code Playgroud)

$hash.GetEnumerator()[0].Name
Run Code Online (Sandbox Code Playgroud)

我发现了关于在 C# 中执行此操作的讨论,这导致了这个

[System.Collections.DictionaryEntry]$test.Item(0).Key
Run Code Online (Sandbox Code Playgroud)

但这也失败了。这只是无法完成的事情,还是我走错了路?

powershell ordereddictionary array-indexing

4
推荐指数
1
解决办法
793
查看次数

按日期排序的Python OrderedDict

我正在尝试使用OrderedDict(Raymond Hettingers 版本为pre2.7 Python),其中我的键是日期.但是它没有正确排序,我想它可能是根据ID进行排序.

有没有人对如何做到这一点有任何建议?

python datetime date ordereddictionary

3
推荐指数
2
解决办法
2551
查看次数

字符串到python中的OrderedDict转换

我通过导入集合创建了一个python Ordered Dictionary并将其存储在名为'filename.txt'的文件中.文件内容看起来像

OrderedDict([(7, 0), (6, 1), (5, 2), (4, 3)])
Run Code Online (Sandbox Code Playgroud)

我需要从另一个程序中使用这个OrderedDict.我这样做

myfile = open('filename.txt','r')
mydict = myfile.read()
Run Code Online (Sandbox Code Playgroud)

我需要获得类型的'mydict'

<class 'collections.OrderedDict'>
Run Code Online (Sandbox Code Playgroud)

但在这里,它出现了'str'类型.
有没有办法在python中将字符串类型转换为OrderedDict类型?使用python 2.7

python string parsing ordereddictionary

3
推荐指数
2
解决办法
3879
查看次数

OrderedDict是树吗?

OrderedDict是一个保留项目顺序的集合(插入它们的顺序).我不认为这可以通过哈希表实现(我认为常规字典使用)所以用于实现它的平衡树是什么?

我假设有许多依赖,如Python 2/3和CPython/IPython/others.

python dictionary ordereddictionary

3
推荐指数
1
解决办法
3689
查看次数

如何按值排序(自定义排序)词典条目列表

我的哈希表包含(key,Values [])

例如:

myHashtable[keys, Values[]]

myHashtable.Add[1, Value1];
myHashtable.Add[2, Value2];
myHashtable.Add[3, Value3]; 
myHashtable.Add[4, Value4];
myHashtable.Add[5, Value5];
Run Code Online (Sandbox Code Playgroud)

哪里有Value1; Value2,value3,value4和value5如下.

Value1[name = "Smith"]
Value1[Title= "Mr"]
Value1[Salary = 1000]
Value1[Identity = "S"]

Value2[name = "Peter"]
Value2[Title= "Mr"]
Value2[Salary = 1000]
Value2[Identity = "A"]


Value3[name = "Tom"]
Value3[Title= "Mr"]
Value3[Salary = 1000]
Value3[Identity = "C"]


Value4[name = "Marry"]
Value4[Title= "Ms"]
Value4[Salary = 1000]
Value4[Identity = ""]

Value5[name = "Sam"]
Value5[Title= "Mr"]
Value5[Salary = 1000]
Value5[Identity = "C"]
Run Code Online (Sandbox Code Playgroud)

我想订购这个dictionaryEntry列表值,其中"C"值首先是"A",然后是"S",然后是""

排序结果后,结果如下.

myHashtable.Add[3, Value3]; // Value3.Identity = "C" …
Run Code Online (Sandbox Code Playgroud)

c# dictionary list ordereddictionary icomparer

3
推荐指数
1
解决办法
1775
查看次数

如何使用defaultdict行为扩展OrderedDict

我有一份命令字典。我想将所有这些组合在一起,然后按每个中的fruit属性对其进行排序。我一直在通过下面的代码使用defaultdict对它们进行组合和排序。

super_dict_apple = defaultdict(list)
super_dict_orange = defaultdict(list)
super_dict_no_fruit = defaultdict(list)


for d in dict:
        if 'fruit' not in d:
            for k, v in d.iteritems():
                super_dict_no_fruit[k].append(v)
        elif d['fruit'] == 'Apple':
            for k, v in d.iteritems():
                super_dict_apple[k].append(v)
        elif d['fruit'] == 'orange':
            for k, v in d.iteritems():
                super_dict_orange[k].append(v)  
Run Code Online (Sandbox Code Playgroud)

这样我得到了一个键和所有相关的值,但是我失去了原始顺序。因此,我尝试使用orderDict来执行此操作,但是我无法使其正常工作,以下是我尝试过的操作。

from collections import OrderedDict

order_dict_no_fruit = OrderedDict()
order_dict_apple = OrderedDict()
order_dict_orange = OrderedDict()

for d in dict:
        if 'fruit' not in d:
            for k, v in d.iteritems():
                order_dict_no_fruit[k].append(v)
        elif d['fruit'] == 'Apple':
            for k, …
Run Code Online (Sandbox Code Playgroud)

python ordereddictionary data-structures defaultdict dictionary-missing

3
推荐指数
1
解决办法
1155
查看次数