python字典添加元素_遍历Python字典并将特殊追加到新列表?

博客内容涉及到Python编程,主要探讨如何将一个频率字典转换为列表。通过`get_freq_dict()`函数创建了一个频率字典,然后使用`bag_of_letters()`函数将字典中每个键的值(频率)转化为相同键值的列表。在`main()`函数中,展示了如何调用这两个函数并打印输出结果。博主还提供了一种使用`groupby()`方法将列表中连续重复的元素进行组合的优化方案。
摘要由CSDN通过智能技术生成

罪魁祸首:

for range in(value):

freq_lst.append(value)

救援人员:

for i in range(value):

freq_lst.append(key)

因此:

def get_freq_dict():

freq_dict = {'J' : 1, 'K' : 1, 'Q' : 1, 'X' : 1, 'Z' : 1,\n 'B' : 2, 'C' : 2, 'F' : 2, 'H' : 2, 'M' : 2, 'P' : 2,\n 'V' : 2, 'W' : 2, 'Y' : 2, '' : 2,\n 'G' : 3, 'D' : 4, 'L' : 4, 'S' : 4, 'U' : 4,\n 'N' : 6, 'R' : 6, 'T' : 6, 'O' : 8, 'A' : 9, 'I' : 9,\n 'E' : 12}

return freq_dict

def bag_of_letters(freq_dict):

freq_lst = []

for key, value in freq_dict.items():

# print(key, value)

for i in range(value):

freq_lst.append(key)

return freq_lst

def main():

freq_dict = get_freq_dict()

freq_lst = bag_of_letters(freq_dict)

print(freq_lst)

main()

输出:

['J', 'K', 'Q', 'X', 'Z', 'B', 'B', 'C', 'C', 'F', 'F', 'H', 'H', 'M', 'M', 'P', 'P', 'V', 'V', 'W', 'W', 'Y', 'Y', '', '', 'G', 'G', 'G', 'D', 'D', 'D', 'D', 'L', 'L', 'L', 'L', 'S', 'S', 'S', 'S', 'U', 'U', 'U', 'U', 'N', 'N', 'N', 'N', 'N', 'N', 'R', 'R', 'R', 'R', 'R', 'R', 'T', 'T', 'T', 'T', 'T', 'T', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'E', 'E', 'E', 'E', 'E', 'E', 'E', 'E', 'E', 'E', 'E', 'E']

要么

如果您希望它们很好地配对:

for i in range(value):

freq_lst.append([key]*value)

OP:但是我仍然在打印输出方面遇到麻烦.它给了我我想要的东西,但同时也给了我原始的字典

回答:因为您要同时打印字典和列表:

print(freq_dict, freq_lst)

只需打印列表即可:

print(freq_lst)

编辑2:

使用groupby()将相似元素组合在一起的另一种更好的方法是:

仅附加密钥:

for i in range(0, value):

freq_lst.append(key)

接着:

print([list(j) for i, j in groupby(freq_lst)])

输出:

[['J'], ['K'], ['Q'], ['X'], ['Z'], ['B', 'B'], ['C', 'C'], ['F', 'F'], ['H', 'H'], ['M', 'M'],

['P', 'P'], ['V', 'V'], ['W', 'W'], ['Y', 'Y'], ['', ''], ['G', 'G', 'G'],

['D', 'D', 'D', 'D'], ['L', 'L', 'L', 'L'], ['S', 'S', 'S', 'S'], ['U', 'U', 'U', 'U'],

['N', 'N', 'N', 'N', 'N', 'N'], ['R', 'R', 'R', 'R', 'R', 'R'],

['T', 'T', 'T', 'T', 'T', 'T'], ['O', 'O', 'O', 'O', 'O', 'O', 'O', 'O'],

['A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A'],

['I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I'],

['E', 'E', 'E', 'E', 'E', 'E', 'E', 'E', 'E', 'E', 'E', 'E']]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值