希望从下面的字典中获取一个列表,其中包含每个键中每个值的第三个数字。对于下面的字典,所需的输出将是[400,100,10]。就我而言,这就是我的意思。到目前为止我的输出只给了我三个整数: 400 100 10 但它不允许我将数字添加到单个列表中。
my_dict={1:[(20,30,400)],2:[(80,90,100),(8,9,10)]}
for values in my_dict.values():
for v in values:
last_num = v[2]
答案 0 :(得分:2)
所以只需将它们附加到列表中:
result = []
for values in my_dict.values():
for v in values:
last_num = v[2]
result.append(last_num)
您可以将其压缩为列表理解:
result = [v[2] for values in my_dict.values() for v in values]
请注意,字典没有排序,因此根据字典的插入和删除历史记录,数字可能会以不同的顺序出现。
如果您想要下订单(例如,按排序键),您必须先进行一些排序:
result = [v[2] for k in sorted(my_dict) for v in my_dict[k]]
答案 1 :(得分:1)
你可以在一行中完成
[ x[2] for l in my_dict.values() for x in l ]
对于
my_dict={1:[(20,30,400)],2:[(80,90,100),(8,9,10)]}
返回
[400, 100, 10]
答案 2 :(得分:0)
正如Martjin所说,只是将他们列入名单。使用-1添加任何长度列表/元组的最后一个值
list_of_values = []
for lists in my_dict.values():
for tuple in lists:
list_of_values.append(tuple[-1])