【问题标题】:write unicode objects from loop to list in Python在 Python 中将 unicode 对象从循环写入列表
【发布时间】:2016-09-30 13:45:00
【问题描述】:

我有一个循环返回 unicode 对象:

for i in X:
print i

Output:  

  A
  B
  C
  ...
  Z

如何列出这些对象以获得关注?

['A', 'B', ..., 'Z']

如果它们是数字,我会这样做

for i in X:
y=[]
i.append(y)

但是这里我得到了错误

AttributeError: 'unicode' object has no attribute 'append'

【问题讨论】:

    标签: python list unicode append


    【解决方案1】:

    如果你正在循环一个变量,你已经知道它是一个可迭代的,例如生成器或列表。首先,您需要在语句中告诉我们x 变量的类型。

    如果您的预期输出是一个列表而x 不是一个,只需调用list 函数:

    new_list = list(x)
    

    如果出于某种原因有必要在循环中构建列表,您应该在先前创建的列表上调用 append 函数——而不是项目,就像您在示例中所做的那样:

    new_list = []
    for i in x:
        new_list.append(i)
    print (new_list)
    

    【讨论】:

    • 但这就是我在收到错误之前正在做的事情:(
    • @Polly 不,你不是。你正在做i.append(new_list) 而不是new_list.append(i)
    • 不,不是这样:首先,您的代码没有缩进,其次,您声明了一个(未使用的)y 变量 inside 循环,然后附加到项目i,不是列表。请注意,我写的是new_list.append,而不是i.append
    【解决方案2】:

    试试这个:

    output_list = [y for y in x]

    在你的循环中:

    for i in X:
        i.append(X)
    

    它获取X 中的每个项目,它们是unicode 字符,并尝试将整个X 对象附加到它。

    我想你想做的是这样的:

    l = []
    for i in X:
        l.append(i)
    print l
    

    但这可以通过上面显示的简单列表理解来完成。

    【讨论】:

    • 这对output_list = list(x)来说很长
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-01
    • 2016-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-09
    相关资源
    最近更新 更多