将列表中的值更改为字典中指定的值?

Posted

技术标签:

【中文标题】将列表中的值更改为字典中指定的值?【英文标题】:Change values in a list to those specified in a dictionary? 【发布时间】:2022-01-13 01:27:52 【问题描述】:

我有一个包含成对元组的列表,第一个元素是名称(字符串),第二个元素是包含该人去过的餐馆的列表。 我有一个包含此类餐厅分数的字典。因此,如果人 A 去过餐馆(x,y,z) 因此,[('A', ['x', 'y', 'z'])] 并且我的字典指出'x':10, 'y':23, 'z':33。如何将餐厅名称替换为包含名称的字典中指定的数字? 输出[('A', [10, 23, 33])]。 在那之后,我想把这些数字加起来有[('A', [66])]

谢谢。 这是我正在使用的代码:

restaurants_attended = [('Aariz Lambert', ['The Beach Chimney', 'Parlay', 'The Private Exhibit']), ('Ariya Collier', ['Seawise', 'Enigma', 'Midnight'])]
'The Beach Chimney': 201.0, "The Pirate's Harvest": 154.0, 'The Square Dragon': 132.0, 'The Spicy Trumpet': 266.0, 'Vertigo': 204.0, 'Drifters': 183.0, 'The Tulip': 156.0, 'Seawise': 136.0, 'Parlay': 140.0, 'The Modern Salmon': 176.0, 'The Bitter Windmill': 139.0, 'The Minty Window': 166.0, 'The Private Exhibit': 189.0, 'Enigma': 228.0, 'The Lighthouse': 159.0, 'Harlequin': 131.0, 'Midnight': 141.0, 'Gastrognome': 166.0

【问题讨论】:

这不是代码编写服务。你真的尝试过这样做吗?您使用的代码只是数据。你需要问一个更具体的问题。 我已经尝试了一段时间,但我无法让它工作。如果我浏览整个代码会很长,这只是最后一步。 【参考方案1】:

你可以使用dict理解:

restaurants_attended = [('Aariz Lambert', ['The Beach Chimney', 'Parlay', 'The Private Exhibit']), ('Ariya Collier', ['Seawise', 'Enigma', 'Midnight'])]
scores = 'The Beach Chimney': 201.0, "The Pirate's Harvest": 154.0, 'The Square Dragon': 132.0, 'The Spicy Trumpet': 266.0, 'Vertigo': 204.0, 'Drifters': 183.0, 'The Tulip': 156.0, 'Seawise': 136.0, 'Parlay': 140.0, 'The Modern Salmon': 176.0, 'The Bitter Windmill': 139.0, 'The Minty Window': 166.0, 'The Private Exhibit': 189.0, 'Enigma': 228.0, 'The Lighthouse': 159.0, 'Harlequin': 131.0, 'Midnight': 141.0, 'Gastrognome': 166.0

output = person: [scores[r] for r in rests] for person, rests in restaurants_attended
print(output) # 'Aariz Lambert': [201.0, 140.0, 189.0], 'Ariya Collier': [136.0, 228.0, 141.0]
output_sum = person: sum(scores) for person, scores in output.items()
print(output_sum) # 'Aariz Lambert': 530.0, 'Ariya Collier': 505.0

如果您想要指定的元组列表,请使用list,如下所示:

print(list(output.items())) # [('Aariz Lambert', [201.0, 140.0, 189.0]), ('Ariya Collier', [136.0, 228.0, 141.0])]

【讨论】:

以上是关于将列表中的值更改为字典中指定的值?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 SQL 记录中的一个字段的值更改为另一个表中的值?

axios 请求多选无法将更新形式中的值更改为 PUT 方法;反应.js

将数据复制到同一张表和从同一表复制数据,并将复制数据的一列中的值更改为指定值

如何将 true 或 false 的值更改为文本值类型 我正在检查整个表中的行 注意该表是数据表类型?

将 Python DataFrame 中的值更改为二进制标志(For-Loop 问题)

如何将列表中的字符串值更改为 Python 中的浮点数