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();
答案 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();