繁体   English   中英

如何将字典中的所有列表编号转换为零

[英]How to turn all list numbers in a dictionary to zeros

我有以下内容:

d_out={'000000F|arrow_887067': ['G/G/G/G', '2', '3', '4', '5', '6', 'T/T/G/G', '8', '9', '10', '11', '12', '13', '14', 'G/G/G/G', 'T/T/T/G', '17', '18', 'T/G/G/G', '20', '21', '22', 'T/G/G/G', '24', '25', '26', '27', '28', 'T/G/G/G', '30', '31', '32', '33', 'G/G/G/G', '35', '36', '37', '38', '39', '40'],
       '000000F|arrow_887188': ['CTTTTATTC/CTTTTATTC/CTTTTATTC/CTTTTATTC', '2', '3', '4', '5', '6', 'A/A/A/A', '8', '9', '10', '11', '12', 'G/G/A/A', '14', 'A/A/A/A', '16', '17', '18', '19', '20', '21', '22', 'A/A/A/A', '24', '25', '26', '27', '28', '29', 'A/A/A/A', '31', '32', 'A/A/A/A', '34', '35', '36', '37', '38', '39', '40']}`

我想要以下内容:

d2_out={'000000F|arrow_887067': ['G/G/G/G', '0', '0', '0', '0', '0', 'T/T/G/G', '0', '0', '0', '0', '0', '0', '0', 'G/G/G/G', 'T/T/T/G', '0', '0', 'T/G/G/G', '0', '0', '0', 'T/G/G/G', '0', '0', '0', '0', '0', 'T/G/G/G', '0', '0', '0', '0', 'G/G/G/G', '0', '0', '0', '0', '0', '0'], 
        '000000F|arrow_887188': ['CTTTTATTC/CTTTTATTC/CTTTTATTC/CTTTTATTC', '0', '0', '0', '0', '0', 'A/A/A/A', '0', '0', '0', '0', '0', 'G/G/A/A', '0', 'A/A/A/A', '0', '0', '0', '0', '0', '0', '0', 'A/A/A/A', '0', '0', '0', '0', '0', '0', 'A/A/A/A', '0', '0', 'A/A/A/A', '0', '0', '0', '0', '0', '0', '0']}`

我怎样才能做到这一点?

我努力了:

{key: [value if not isinstance(value, int) else 0 for value in lst] 
           for key, lst in d_out.items()}

{i:[x if type(x)!=int else 0 for x in d_out[i]] for i in d_out}

您的第一次尝试失败,因为值不是int对象 - 它们是仅数字的字符串。 尝试改为:

{key: [value if not value.isdigit() else '0' for value in lst]
     for key, lst in d1.items()}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM