相关疑难解决方法(0)

Python反向/反转映射

给出这样的字典:

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__.下面有些评论可能会受到影响.

python mapping reverse dictionary

597
推荐指数
12
解决办法
36万
查看次数

在字典中按值获取密钥

我创建了一个函数,它将在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行,我得到了一个.我知道这不正确,但我无法弄清楚如何让它向后搜索.

python dictionary

575
推荐指数
21
解决办法
127万
查看次数

什么时候应该使用iteritems()而不是items()?

是否合法使用items()而不是iteritems()在所有地方使用?为什么iteritems()从Python 3 中删除?看起来像一个了不起的有用的方法.背后的原因是什么?

编辑:为了澄清,我想知道以类似生成器的方式迭代字典的正确习惯用法(一次一个项目,而不是全部到内存中)以与Python 2和Python 3兼容的方式进行迭代?

python python-3.x

143
推荐指数
7
解决办法
20万
查看次数

如何在字典中交换键的值

可能重复:
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)

还有其他有效的方法吗?

python python-3.x

28
推荐指数
0
解决办法
2万
查看次数

如何反转字典或列表中的值?

我有一本字典

{1:’one’,2:’two’}
Run Code Online (Sandbox Code Playgroud)

我想用一个函数来反转它,并转到下面

{‘1:’eno’,2:’owt’ }
Run Code Online (Sandbox Code Playgroud)

我该怎么做?

同样,如果我有一个列表或元组[15,49],我怎么能把它转换成[94,51]

python dictionary list

2
推荐指数
1
解决办法
132
查看次数

当值是列表时交换字典键和值

这个问题这个问题类似,我想交换字典中的键和值。

不同的是,我的值是列表,而不仅仅是单个值。

因此,我想转向:

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)

假设我很高兴我的价值观是独一无二的。

python python-2.7

2
推荐指数
1
解决办法
2446
查看次数

使用字典替换句子中的单词

我创建了一个字典,用来将各种单词带入其基本形式。

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)

给我“闪闪发光”。当我在寻找“阳光照耀的阳光”时。

对这里出什么问题有任何想法吗?

python

2
推荐指数
1
解决办法
965
查看次数

更改字典以将值映射到值的长度

我有以下字典:

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 string dictionary for-loop python-3.x

1
推荐指数
1
解决办法
82
查看次数