use*_*486 4 python string tuples list python-2.7
我有这个清单;
List=[(1, 'John', 129L, 37L), (2, 'Tom', 231L, 23L)]
Run Code Online (Sandbox Code Playgroud)
我想把它转换成这样的样子;
OutputList = [('1', 'John', '129', '37'), ('2', 'Tom', '231', '23')]
Run Code Online (Sandbox Code Playgroud)
列表中的所有数据类型都将变为字符串.我尝试过,[str(i) for i in List]
但结果并不正确.解决这个问题的正确方法是什么?
我正在使用python 2.7
>>> lst = [(1, 'John', 129L, 37L), (2, 'Tom', 231L, 23L)]
>>> [tuple(str(x) for x in xs) for xs in lst]
[('1', 'John', '129', '37'), ('2', 'Tom', '231', '23')]
Run Code Online (Sandbox Code Playgroud)
或使用map
代替生成器表达式:
>>> [tuple(map(str, xs)) for xs in lst]
[('1', 'John', '129', '37'), ('2', 'Tom', '231', '23')]
Run Code Online (Sandbox Code Playgroud)
上面的列表推导类似于以下嵌套for循环:
>>> result = []
>>> for xs in lst:
... temp = []
... for x in xs:
... temp.append(str(x))
... result.append(tuple(temp))
...
>>> result
[('1', 'John', '129', '37'), ('2', 'Tom', '231', '23')]
Run Code Online (Sandbox Code Playgroud)