【问题标题】:Should I Append or Join a list of dict and And how in python?我应该追加还是加入字典列表以及在 python 中如何?
【发布时间】:2019-07-30 01:21:11
【问题描述】:

使用此代码,我能够循环浏览多个属性实例并提取名字和姓氏(如果它们符合条件)。结果是一个dict列表。我如何使所有这些符合条件的结果作为全名在其自己的行上作为文本返回?

my_snapshot = cfm.child('teamMap').get()
for players in my_snapshot:
    if players['age'] != 27:
    print({players['firstName'], players['lastName']})

打印声明结果

{'Chandon',  'Sullivan'}
{'Urban', 'Brent'}

【问题讨论】:

    标签: python list dictionary join append


    【解决方案1】:

    你在找这个吗:

     print(players['firstName'], players['lastName'])
    

    这将输出:

    Chandon Sullivan
    Urban Brent
    

    您最初的试用版只是将这些项目放入一个集合{},然后打印该集合,没有明显的原因。

     

    编辑:

    例如,您还可以将firstNamelastName 连接为一个字符串,然后将组合附加到列表中。然后你可以对列表做任何你需要的事情:

    names = []
    my_snapshot = cfm.child('teamMap').get()
    for players in my_snapshot:
        if players['age'] != 27:
            names.append(f"{players['firstName']} {players['lastName']}")
    

    如果您使用的 Python 版本低于 3.6 并且不能使用 f-strings,您可以像这样执行最后一行:

    names.append("{} {}").format(players['firstName'], players['lastName'])
    

    或者,如果您愿意:

    names.append(players['firstName'] + ' ' + players['lastName'])
    

    【讨论】:

    • 你是对的。它在控制台中正确显示,但是当尝试将players['firstName'], players['lastName'] 传递给设备时,它只显示最后找到的记录。所以我试图弄清楚如何加入每条记录,以便将其发送到显示所有找到的记录的设备。
    • @WillJames 传递给设备是什么意思?
    • 谢谢我昨晚想通了,我把我的解决方案放在下面。
    • @WillJames 如果您认为我的回答提供了一个很好的解决方案,请随时将其标记为已接受:)
    【解决方案2】:

    好的,我通过附加名字和姓氏并为找到的条件创建一个列表来弄清楚。然后我将列表转换为字符串以在设备上显示。

        full_list = []
    
        my_snapshot = cfm.child('teamMap').get()
        for players in my_snapshot:
            if players['age'] != 27:
            full_list.append((players['firstName'] + " " + players['lastName']))
    
        send_message('\n'.join(str(i) for i in full_list))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-18
      • 2018-03-01
      • 2016-08-07
      • 2021-08-04
      • 1970-01-01
      • 2019-08-26
      • 2014-11-10
      • 1970-01-01
      相关资源
      最近更新 更多