【问题标题】:How do I change the values of my dictionary from list type to string type如何将字典的值从列表类型更改为字符串类型
【发布时间】:2020-06-24 04:30:12
【问题描述】:

我需要离开这个输出

3 ['and', 'may']
5 ['short']
6 ['coffee', 'monday', 'strong']

到这个输出

3 and may
5 short
6 coffee monday strong

这是我目前的代码:

dictionary = {6:['monday', 'coffee', 'strong'], 5:['short'], 3:['may', 'and']}

def print_keys_values_inorder(dictionary):
    for key in sorted(dictionary):
        print(key , sorted(dictionary[key]))

print_keys_values_inorder(dictionary)

如何将列表类型的字典值转换为字符串类型?

【问题讨论】:

    标签: python-3.x string list dictionary type-conversion


    【解决方案1】:

    您可以尝试以下方法:

        dictionary = {6: ['monday', 'coffee', 'strong'], 5: ['short'], 3: ['may', 'and']}
    
        def print_keys_values_inorder(dictionary):
            for key in sorted(dictionary):
                print(key, ' '.join(map(str, sorted(dictionary[key]))))
    
        print_keys_values_inorder(dictionary)
    

    或者如果你想避免使用地图,试试这个:

        dictionary = {6: ['monday', 'coffee', 'strong'], 5: ['short'], 3: ['may', 'and']}
    
        def print_keys_values_inorder(dictionary):
            for key in sorted(dictionary):
                print(key, *sorted(dictionary[key]))
    
        print_keys_values_inorder(dictionary)
    

    【讨论】:

    • 行得通,谢谢!出于好奇和忽略效率,有没有办法在不使用连接或映射运算符的情况下做到这一点?
    • 非常感谢!你能解释一下“*”在你的代码中到底做了什么吗?我以前从未见过这样使用它。
    • * 符号用于将列表元素打印在带有空格的单行中
    【解决方案2】:

    您可以将print 内置函数与generator expression 一起使用:

    d = {3: ['may', 'and'], 5: ['short'], 6: ['monday', 'coffee', 'strong']}
    
    print(*(' '.join(str(e) for e in (k, *v)) for k, v in d.items()), sep='\n')
    

    输出:

    3 may and
    5 short
    6 monday coffee strong
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-25
      • 1970-01-01
      • 2020-08-07
      • 2021-08-26
      • 2015-08-02
      • 2018-03-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多