将元组中的整数转换为字符串形式的元组

5

我想把元组中的整数转换为字符串。 例如:

data = [(2,3,4,...),(23,42,54,...),......]

会导致:
d = [('2','3','4',...),('23','42','54',....)......]

请注意元组和列表的区别,元组是不可变的,而列表是可变的。
我尝试了下面的代码,但它没有给我想要的结果:
data = [(2,3,4,...),(23,42,54,...),......] 

d=[]
for t in data:
    d.append(str(t))
2个回答

10

这个已经很接近了:

data = [[str(x) for x in tup] for tup in data]

如果你确实 需要 元组:

data = [tuple(str(x) for x in tup) for tup in data]

或者,如果您更喜欢更“功能性”的方法:

data = [tuple(map(str, tup)) for tup in data]

虽然似乎在 Python 界,map 已经不再受欢迎了(或者说它从来没有真正受到青睐 ;-)。


非常感谢您的帮助。您真是太棒了。我将在6分钟内接受这个答案。 - Sam

0

这将递归地转换无限嵌套的列表和元组:

def stringify(something):
    if type(something) == list:
        return [stringify(x) for x in something]
    elif type(something) == tuple:
        return tuple(stringify(list(something)))
    else:
        return str(something)

3
小心随意使用“无限”这个词——你会在某个时候(至少在大多数Python实现中)遇到递归限制。我不确定stackless……嗯……:-) - mgilson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接