将''添加到元组子列表的每个字符

时间:2017-07-08 19:33:05

标签: python

您好我刚刚完成了我的Lorenz代码,但我遇到了一些问题,我无法将''添加到列表中的字符。

my_sublist:[(0,0,0,0,0,0,0),(0,0,0,0,0,0,1),(0,0,0,0,0,1,0)]

和我期望的输出是:

my_sublist:[('0','0','0','0','0','0','0'),('0','0','0','0','0','0','1'),('0','0','0','0','0','1','0')]

2 个答案:

答案 0 :(得分:1)

你想要的不是添加引号字符,而是将元组中的值转换为字符串。你可以这样做:

In [397]: my_sublist = [(0, 0, 0, 0, 0, 0, 0), (0, 0, 0, 0, 0, 0, 1), (0, 0, 0, 0, 0, 1, 0)]

In [398]: x = list(map(lambda x: tuple(map(str, x)), my_sublist))

In [399]: x
Out[399]: 
[('0', '0', '0', '0', '0', '0', '0'),
 ('0', '0', '0', '0', '0', '0', '1'),
 ('0', '0', '0', '0', '0', '1', '0')]

这样做,它使用map函数将每个元素转换为字符串:

In [400]: x = (1, 2, 3, 4)

In [403]: tuple(map(str, x))
Out[403]: ('1', '2', '3', '4')

由于您有一个元组列表,只需将上面相同的内容应用于列表中的每个元组。

答案 1 :(得分:0)

它并不完全清楚你想要什么,但从它的外观来看,你有一个带有整数的元组列表,你想要那些整数的字符串表示。您可以通过在插入元组之前将整数包装在str()函数中,或者通过迭代元组列表并转换它们来实现这几种方法。

new_list = [tuple(str(a) for a in b) for b in my_sublist]

这是一个列表推导方法,迭代列表和元组的两个层,将每个项目转换为字符串。它在做:

将列组a中的每个元组str(a)转换为元组b中的每个项目为字符串my_sublist。由于它是列表理解,您需要将第二层转换回元组tuple(str(a) for a in b)