有人可以将此python转换为列表理解吗?

时间:2014-03-06 19:29:50

标签: python unicode list-comprehension

有人可以将此python(2.7.2)转换为等效的单行程吗?这段代码工作正常,但对于python似乎有点奢侈。

for i in range(0,len(schema)):
        schema[i] = list(schema[i])
        for j in range(0,len(schema[i])):
            if isinstance(schema[i][j], unicode):
                schema[i][j] = str(schema[i][j])

我正在摸索下面这样的东西......但它显然不起作用。

[i = str(i) for i for sublist in schema for i in sublist if isinstance(i, unicode)]

为了记录,我正在转换一些不需要unicode格式化的sqlite架构信息,就像这样('schema'的值):

[(0, u'course', u'VARCHAR(128)', 0, None, 0), ... (another tuple) ... ]

到这样的字符串(如果需要,可以将元组转换为列表):

[(0, 'course', 'VARCHAR(128)', 0, None, 0), ... (another tuple) ... ]

1 个答案:

答案 0 :(得分:2)

我认为你真正想要的是一个列表理解,它与lambda

不完全相同
processed = [[val if not isinstance(val,basestring) else str(val) for val in row] for row in schema]

我认为至少