Python 将字典中的键提取为平面列表

Python 将字典中的键提取为平面列表,python,python-3.x,list,dictionary,Python,Python 3.x,List,Dictionary,我有一个字典对象,如下所示: {('look', 'toward'): 1, ('new', 'cage'): 3, ('think', 'surpris'): 0, ('go', 'see'): 1 } 我想做的是分别提取每个单词的 “look”、“toward”、“new”、“cage”……一直到最后,不使用值()。 如何提取这些单词? 写一份清单而不是一本字典更好吗? 如果您能详细解释,我们将不胜感激。如果A是您的口述,提取A的简单方法是: >>> for key

我有一个字典对象,如下所示:

{('look', 'toward'): 1,
 ('new', 'cage'): 3,
 ('think', 'surpris'): 0,
 ('go', 'see'): 1 }
我想做的是分别提取每个单词的 “look”、“toward”、“new”、“cage”……一直到最后,不使用值()。 如何提取这些单词? 写一份清单而不是一本字典更好吗?
如果您能详细解释,我们将不胜感激。

如果A是您的口述,提取A的简单方法是:

>>> for key, value in a.items():
...     print(key[0],key[1],value)
...
look toward 1
new cage 3
think surpris 0
go see 1
你可以玩你想玩的游戏:

>>> for key, value in a.items():
...     print(f'{key[0]}: {value}')
...     print(f'{key[1]}: {value}')
...
look: 1
toward: 1
new: 3
cage: 3
think: 0
surpris: 0
go: 1
see: 1

这就是你想要的吗:

d = {('look', 'toward'): 1,
 ('new', 'cage'): 3,
 ('think', 'surpris'): 0,
 ('go', 'see'): 1 }

[kk for k in d for kk in k]
# returns:
['look', 'toward', 'think', 'surpris', 'new', 'cage', 'go', 'see']

你只对键感兴趣,而不是“值”。这些键是用来索引字典的

一种干净的方法是调用
dict.keys()
并使用
itertools.chain
将其展平<代码>导入itertools,首先

>>> list(itertools.chain.from_iterable(d.keys()))
['think', 'surpris', 'go', 'see', 'look', 'toward', 'new', 'cage']

请注意,返回字符串的顺序不能保证,因为python的字典在3.6之前的版本上是不排序的。

您要做的是获取字典的键列表,您可以使用
my_dict.keys()
获得该列表,并在其中合并元组,如下所示:

my_dict = {('look', 'toward'): 1,
  ('new', 'cage'): 3,
  ('think', 'surpris'): 0,
  ('go', 'see'): 1 }

my_tuple = tuple()
for key in my_dict.keys():
  new_list = new_list + key
print(my_tuple)
这将打印:

('look', 'toward', 'new', 'cage', 'think', 'surpris', 'go', 'see')
您现在可以正常地迭代:

for item in my_tuple:
  print(item)
它会吐出:

look
toward
new
cage
think
surpris
go
see
输出:

[['new', 'cage'], ['go', 'see'], ['look', 'toward'], ['think', 'surpris']]

您不必使用
values()
,因为您后面的值是dict的
,而不是
。考虑到订单,无法保证,因为dict不理解这个概念(或者没有达到版本3.6,但这只是一个不能指望的实现细节)。好的。谢谢你指出我的误解。
[['new', 'cage'], ['go', 'see'], ['look', 'toward'], ['think', 'surpris']]