列表理解中的多个if语句

时间:2016-08-01 02:34:53

标签: python

我有一个需要转换为元组的python列表,我还需要添加一个额外的检查来检查列表元素类型并将它们转换为元组

例如:

row_data = ['map',[10,20]]

row_data = tuple(d._get_pk_val() if hasattr(d, '_get_pk_val') else d if type(d) is list else d for d in row_data)
print row_data

结果 row_data ==(' map',[10,20])

Expected result

row_data == ('map', (10, 20))

需要在列表推导中添加多个ifs,并且每个ifs都有自己的输出。

1 个答案:

答案 0 :(得分:0)

这应该有用 -

row_data = ['map',[10,20]]

row_data = tuple(d._get_pk_val() if hasattr(d, '_get_pk_val') else tuple(d) if type(d) is list else d for d in row_data)
print(row_data)

Output: ('map', (10, 20))