仅访问字典中的值

时间:2017-12-02 20:20:27

标签: python-2.7 dictionary

wordDict = {'y': 1, 'H': 1, 'e': 1}

以上是我需要从中得到的价值。我应该标记我必须评估的每个单词是否唯一,这取决于值是否为1或更高。我怎样才能访问该值?我已经尝试过wordDict [0] [0]来获取整个数组的第一个元素,然后是字典中的第一个元素,但这不起作用。

import collections;

def main():
    reading = read_file();
    uniqueOrNot = isUnique(reading);
    print uniqueOrNot;

def read_file():
    with open('BWA5.in') as fp:
        lines = fp.read().split();
    fp.close(); #close file
    return lines; #return lines to main function

def isUnique(words):
    wordDict = [dict(collections.Counter(word)) for word in words];
    for wordDict in wordDicts:
        values = wordDict.values()
        unique = all(value == 1 for value in values)
    print wordDict;


main();

1 个答案:

答案 0 :(得分:0)

通过

获取值
values = wordDict.values()

现在是独特的东西,

unique = all(value == 1 for value in values)

现在unique是一个保持True / False的布尔值。

我们也可以做到:

notUnique = any(value > 1 for value in values)

这会考虑您可能拥有或不拥有的任何0个频率字母,具体取决于您的算法。

对于多个单词的词典列表,您可以使用循环一次遍历所有词典。

<强> 修改

最终代码:

import collections;

def main():
    reading = read_file();
    uniqueOrNot = isUnique(reading);
    print uniqueOrNot;

def read_file():
    with open('BWA5.in') as fp:
        lines = fp.read().split();
    fp.close(); #close file
    return lines; #return lines to main function

def isUnique(words):
    wordDicts = [dict(collections.Counter(word)) for word in words];
    for wordDict in wordDicts:
        values = wordDict.values()
        unique = all(value == 1 for value in values)
        print unique;


main();