Dar*_*God 2 python printing dictionary unique
在Python中,我目前有一个字典(它有一个列表中列表的复合键),当我打印它时,它看起来类似于以下内容:
第一个值是数字,第二个值(A或B)表示文本值,数字是它们出现在此字典派生自的列表原始列表中的次数.
我需要的是一种以下列格式打印出数据的方法.对于字典中数值的唯一出现(即,在本例中为第一个和第三个值),打印出关联的文本值及其计数.看起来就像
键入:111文本计数
A 4
B 10
Total: 14
Run Code Online (Sandbox Code Playgroud)
键入:112文本计数
A 3
Total: 3
Run Code Online (Sandbox Code Playgroud)
我知道当与If语句结合使用时,我需要使用某种while循环.根据我迄今为止所研究的内容(与我迄今为止为Python所教授的内容相关),我需要使用if语句编写循环以仅打印我想要打印的内容.所以我需要在它们第一次出现时打印新的数字值,而不是它们出现的第二个(或第三个或第四个等)时间.我假设部分执行此操作,我将它们放在变量中,然后将它们与当前值进行比较.如果它们是相同的,我不打印它们,但如果它们不同,我打印旧数值的"总数",将其添加到总数中,然后打印新的数值.
我会使用对象的层次结构,而不是一个平面字典,例如dict中的dicts,dict中的元组等.
考虑一个dict中的dicts示例:
data = {
'111': {
'A': 4,
'B': 10,
},
'112': {
'A': 3
},
}
Run Code Online (Sandbox Code Playgroud)
现在您可以更轻松地访问内容.例如'111'中的显示属性:
for key in data['111']:
print "%s\t%s" % (key, data['111'][key])
Run Code Online (Sandbox Code Playgroud)
通过组合两个for循环,可以在某种程度上轻松创建所需的输出:
for datatype in data:
print("Type: %s Text Count" % datatype)
items = data[datatype]
total = 0
for key in items:
print "%s\t%s" % (key, items[key])
total += items[key]
print("Total:\t%s\n" % total)
Run Code Online (Sandbox Code Playgroud)
使用给定数据运行上述操作将导致以下输出:
Type: 111 Text Count
A 4
B 10
Total: 14
Type: 112 Text Count
A 3
Total: 3
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1824 次 |
最近记录: |