【问题标题】:List generators列表生成器
【发布时间】:2017-03-07 01:12:28
【问题描述】:

我在生成列表方面很弱。请帮助我如何获得这种结构:

cash = [[01110101010, {'01110101010100010000000110010100': 1477317843.506, '01110101010100010000000110010101': 1477317843.906}], 01110101011, {'01110101011100010000000110010100': 1477317843.506, '01110101011100010000000110010101': 1477317843.906}]]

示例: 对于现金bloch: block[0][0] 是 01110101010 并且它总是等于相应字典中每个键的前 11 个数字。如果键的前 11 个数字等于 block[i][0]

,则键在这种情况下相加

从这个限制:

cash = [[01110101010, {'01110101010100010000000110010100': 1477317843.506}], [01110101010, {'01110101010100010000000110010101': 1477317843.906}], [01110101011, {'01110101011100010000000110010100': 1477317843.506}], [01110101011 {'01110101011100010000000110010101': 1477317843.906}]]

示例: 对于现金bloch: block[0][0] 是 01110101010 并且它总是等于相应字典中所有键的前 11 个。

【问题讨论】:

  • 欢迎来到 Stack Overflow。请edit您的问题并说明您正在使用哪种编程语言或适当地设置标签。谢谢。

标签: list dictionary generator


【解决方案1】:

假设您正在使用 Python(通过查看您的数据结构)以下解决方案应该适合您

注意:我已编辑您的输入以将第一个元素设为字符串,因为以 0 开头的数字被解释为八进制,我认为这不是您可能想要的

cash = [
    ['01110101010',{'01110101010100010000000110010100': 1477317843.506}],
    ['01110101010', {'01110101010100010000000110010101': 1477317843.906}],
    ['01110101011', {'01110101011100010000000110010100': 1477317843.506}],
    ['01110101011', {'01110101011100010000000110010101': 1477317843.906}]
]

op = dict()
for entry in cash:
    key = entry[0]
    value = entry[1]
    op.setdefault(key,{})
    op[key].update(value)

下面的操作应该适合你

{
    '01110101011': {'01110101011100010000000110010101': 1477317843.906, '01110101011100010000000110010100': 1477317843.506},
    '01110101010': {'01110101010100010000000110010100': 1477317843.506, '01110101010100010000000110010101': 1477317843.906}
}

但如果你坚持列出那么

op_list = []
for key in op.keys():
    op_list.append([key, op[key]])

会给你以下格式**

[
    ['01110101011', {'01110101011100010000000110010101': 1477317843.906, '01110101011100010000000110010100': 1477317843.506}],
    ['01110101010', {'01110101010100010000000110010100': 1477317843.506, '01110101010100010000000110010101': 1477317843.906}]
]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-12
    • 1970-01-01
    • 2015-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-30
    • 2016-04-14
    相关资源
    最近更新 更多