给出这样的字典:
my_map = {'a': 1, 'b': 2}
Run Code Online (Sandbox Code Playgroud)
如何反转此地图以获得:
inv_map = {1: 'a', 2: 'b'}
Run Code Online (Sandbox Code Playgroud)
编者注: __CODE__改为__CODE__避免与内置函数冲突,__CODE__.下面有些评论可能会受到影响.
我创建了一个函数,它将在a中查找年龄Dictionary并显示匹配的名称:
dictionary = {'george' : 16, 'amber' : 19}
search_age = raw_input("Provide age")
for age in dictionary.values():
if age == search_age:
name = dictionary[age]
print name
Run Code Online (Sandbox Code Playgroud)
我知道如何比较和找到我只是不知道如何显示这个人的名字的年龄.另外,KeyError由于第5行,我得到了一个.我知道这不正确,但我无法弄清楚如何让它向后搜索.
是否合法使用items()而不是iteritems()在所有地方使用?为什么iteritems()从Python 3 中删除?看起来像一个了不起的有用的方法.背后的原因是什么?
编辑:为了澄清,我想知道以类似生成器的方式迭代字典的正确习惯用法(一次一个项目,而不是全部到内存中)以与Python 2和Python 3兼容的方式进行迭代?
可能重复:
Python:使用字典中的值交换密钥的最佳方法?
假设我需要在字典中交换键的值.
这就是我的想法(假设值的值是唯一的):
>>> my_dict = {'x':1, 'y':2, 'z':3}
>>> my_dict2 = {}
>>> for key, val in my_dict.items():
my_dict2[val] = key
Run Code Online (Sandbox Code Playgroud)
还有其他有效的方法吗?
我有一本字典
{1:’one’,2:’two’}
Run Code Online (Sandbox Code Playgroud)
我想用一个函数来反转它,并转到下面
{‘1:’eno’,2:’owt’ }
Run Code Online (Sandbox Code Playgroud)
我该怎么做?
同样,如果我有一个列表或元组[15,49],我怎么能把它转换成[94,51]?
不同的是,我的值是列表,而不仅仅是单个值。
因此,我想转向:
In [120]: swapdict = dict(foo=['a', 'b'], bar=['c', 'd'])
In [121]: swapdict
Out[121]: {'bar': ['c', 'd'], 'foo': ['a', 'b']}
Run Code Online (Sandbox Code Playgroud)
进入:
{'a': 'foo', 'b': 'foo', 'c': 'bar', 'd': 'bar'}
Run Code Online (Sandbox Code Playgroud)
假设我很高兴我的价值观是独一无二的。
我创建了一个字典,用来将各种单词带入其基本形式。
dictionary = {'sunny': 'sun', 'banking': 'bank'}
def stemmingWords(sentence, dictionary):
for word in sentence.split():
temp = []
if word in dictionary:
word = dictionary[word]
temp.append(word)
sentence = ' '.join(temp)
return(sentence)
Run Code Online (Sandbox Code Playgroud)
现在,如果打印单独的单词,它似乎可以工作。但是,当我插入一个完整的句子并想要此句子的更新版本时,似乎出现了问题。例如,如果我这样做:
sentence = "the sun us shining"
new_sentence = stemmingWords(sentence, dictionary)
print(new_sentence)
Run Code Online (Sandbox Code Playgroud)
给我“闪闪发光”。当我在寻找“阳光照耀的阳光”时。
对这里出什么问题有任何想法吗?
我有以下字典:
dict = {12:'Apples', 13:'Bananas', 14:'Oranges', 15:'Cherries'}
Run Code Online (Sandbox Code Playgroud)
我想重写这本字典,以便 的值dict成为new_dict. 那么 的值new_dict将是每个新值的长度,如下所示:
new_dict = {'Apples':6, 'Bananas':7, 'Oranges':7, 'Cherries':8}
Run Code Online (Sandbox Code Playgroud)
我可以使用交换值
new_dict{}
for key,value in dict.items():
new_dict[key] = [value]
print(new_dict[key])
counts = len(new_dict[key])
Run Code Online (Sandbox Code Playgroud)
但是这里的 len 函数计算存在多少个值,而不是每个值有多少个字符。
python ×8
dictionary ×4
python-3.x ×3
for-loop ×1
list ×1
mapping ×1
python-2.7 ×1
reverse ×1
string ×1