python - 如何从元组列表字典的所有键中输出所有第一个元素?
问题描述
我的字典中的一个片段my_emotions
如下所示:
{'art': [(2135, ['anticipation', 'joy', 'sadness', 'surprise'])],
'bad': [(7542, ['anger', 'disgust', 'fear', 'sadness'])],
'beautiful': [(4000, ['joy']), (4425, ['joy'])],
'boy': [(777, ['disgust']), (2634, ['disgust']), (4442, ['disgust'])],
'ceremony': [(2948, ['joy', 'surprise'])],
'child': [(4263, ['anticipation', 'joy'])],
'detention': [(745, ['sadness']),
(3461, ['sadness']),
(3779, ['sadness']),
(4602, ['sadness'])],...]}
我的目标是将每个键中出现的每个元组的所有第一个数字输出到一个列表中。
到目前为止,我已经尝试过:
for key in sorted(my_emotions.keys()):
auto_emotion_indices = [].append(my_emotions[key][0][0])
但它输出None
。
我尝试打印输出以查看我得到了什么,使用:
for key in sorted(my_emotions.keys()):
auto_emotion_indices = [].append(my_emotions[key][0][0])
它输出我想要的字典的一部分(数字又名索引),但只有当一个键出现多次时才输出第一个。
例如钥匙detention
:我只得到745
,但没有3461
,3779
等等......
期望的输出是:
my_list = [2135, 7542, 4000, 4425, 777, 2634, 4442, 2948, 4263, 745, 3461, 3779, 4602...]
我应该添加什么以将其余这些数字包含在我的列表中?
提前致谢!
解决方案
将 my_emotions 定义为:
my_emotions = {'art': [(2135, ['anticipation', 'joy', 'sadness', 'surprise'])],
'bad': [(7542, ['anger', 'disgust', 'fear', 'sadness'])],
'beautiful': [(4000, ['joy']), (4425, ['joy'])],
'boy': [(777, ['disgust']), (2634, ['disgust']), (4442, ['disgust'])],
'ceremony': [(2948, ['joy', 'surprise'])],
'child': [(4263, ['anticipation', 'joy'])],
'detention': [(745, ['sadness']),
(3461, ['sadness']),
(3779, ['sadness']),
(4602, ['sadness'])]}
这条pythonic行可以解决问题:
my_list = [number for emotion in sorted(my_emotions.keys()) for number, _ in my_emotions[emotion]]
一种不那么Pythonic的方法是使用两个 for 循环来完成:
my_list = []
for emotion in sorted(my_emotions.keys()):
for number, _ in my_emotions[emotion]:
my_list.append(number)
如果要检查正在添加的内容,只需在内部循环中插入一条打印语句。在这两种情况下,输出都是:
[2135, 7542, 4000, 4425, 777, 2634, 4442, 2948, 4263, 745, 3461, 3779, 4602]
推荐阅读
- jquery - 删除aspnet核心mvc中的数据后如何使用jquery延迟3000秒重定向页面
- http - Google FCM 是否已停止接受 HTTP 请求?
- android - 如何从aab文件制作apk文件
- azure - Azure 上的 HTTPS/SSL 证书和流量 - 从 CDN(使用 SSL 的自定义域)到流量管理器和端到端流
- vb.net - 读取gridview数据并将其输出到屏幕
- python - AttributeError:“_tkinter.tkapp”对象在 tkinter 中没有属性“文本”
- python-3.x - 神经网络 Python 梯度下降
- html - 在 img 上带有图标的角标签
- c# - 使用 C# 的 sql 服务器连接
- complexity-theory - 以下循环的复杂性分析