首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python TypeError:无法将字典更新序列元素#1转换为序列

Python TypeError:无法将字典更新序列元素#1转换为序列
EN

Stack Overflow用户
提问于 2014-12-20 04:48:13
回答 1查看 5.2K关注 0票数 2

从O‘’Reilly的"Python for data Analysis“中的一个示例中进行一些数据辩论。

我们从以下格式的数据开始:

代码语言:javascript
复制
In [108]: data.CATEGORY[:5]
Out[108]: 
0          1. Urgences | Emergency, 3. Public Health, 
4                            1. Urgences | Emergency, 
5                       5e. Communication lines down, 
6    4. Menaces | Security Threats, 4e. Assainissem...
7                      4. Menaces | Security Threats, 
Name: CATEGORY, dtype: object

然后,这本书列出了从每个条目中删除句点和'|‘的过程,目的是创建一个字典,使用以下定义;

代码语言:javascript
复制
def get_all_categories(cat_series):
    cat_sets = (set(to_cat_list(x)) for x in cat_series)
    return sorted(set.union(*cat_sets))

def get_english(cat):
    code, names = cat.split('.')
    if '|' in names:
        names = names.split(' | ')[1]
    return code, names.strip()

第一步进行得很好,创建了唯一类别的列表;

代码语言:javascript
复制
In [109]: all_cats = get_all_categories(data.CATEGORY)

In [110]: all_cats[:5]
Out[110]: 
['1. Urgences | Emergency',
 '1a. Highly vulnerable',
 '1b. Urgence medicale | Medical Emergency',
 '1c. Personnes prises au piege | People trapped',
 '1d. Incendie | Fire']

然而,使用第二种定义会导致以下结果;

代码语言:javascript
复制
In [116]: english_mapping = dict(get_english(x) for x in all_cats)
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-116-e69c3419c341> in <module>()
----> 1 english_mapping = dict(get_english(x) for x in all_cats)

TypeError: cannot convert dictionary update sequence element #1 to a sequence

请为Python菜鸟提供一点帮助:)

EN

回答 1

Stack Overflow用户

发布于 2015-12-15 22:54:07

以下是解决方案:

dictionary;

  • Why?

  • “无法将字典更新序列元素#1转换为序列”-因为表达式"get_english(x) x in all_cats“中存在空值,因此无法将其转换为dictionary;
  1. Why?

def get_english(cat):代码,names=cat.split('.')if names中的'|‘:names=names.split('|')1返回代码,names.strip()

-这就是问题所在,最后一行不应该缩进,如果不缩进,你会得到一些空值。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27573687

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档