将整数和字符串列表转换为纯字符串

时间:2019-04-01 10:10:34

标签: python python-3.x

我有一个列表,其内容为:

x = ['A', 2, 'B', 2, 'C', 2, 'D', 2, 'a', 4, 'b', 2, 'c', 1, 'd', 2]

我希望输出为:

A2B2C2D2a4b2c1d2

我尝试过:

print(''.join(str(x)))

但是它给我一个错误,提示:

print(''.join(str(x)))
TypeError: 'str' object is not callable`

猜测是因为这些整数和字符串一起发生了。

如何解决上述问题以获得所需的输出?

5 个答案:

答案 0 :(得分:2)

使用map()

''.join(map(str, x))

代码

x = ['A', 2, 'B', 2, 'C', 2, 'D', 2, 'a', 4, 'b', 2, 'c', 1, 'd', 2]

print(''.join(map(str, x)))
# A2B2C2D2a4b2c1d2

答案 1 :(得分:1)

str(x)给出字符串x的表示形式-它不会迭代x中的值。试试这个:

print(''.join([str(a) for a in x]))

答案 2 :(得分:0)

尝试一下:

print(''.join([str(k) for k in x]))

输出

A2B2C2D2a4b2c1d2

答案 3 :(得分:0)

x = ['A', 2, 'B', 2, 'C', 2, 'D', 2, 'a', 4, 'b', 2, 'c', 1, 'd', 2]

理解

s = ''                             # empty var
for elem in x:                     # for each elem in x
    s += str(elem)                 # concatenate it with prev s
print(s)                           # A2B2C2D2a4b2c1d2

可以缩写为

print(''.join([str(elem) for elem in x]))  # A2B2C2D2a4b2c1d2

使用减少

print(reduce(lambda x,y:str(x)+str(y),x))   # A2B2C2D2a4b2c1d2

答案 4 :(得分:0)

也可以通过创建一个新列表来完成,其中将x中的所有元素都转换为字符串:

x = ['A', 2, 'B', 2, 'C', 2, 'D', 2, 'a', 4, 'b', 2, 'c', 1, 'd', 2]

strings = []

for e in x:
    strings.append(str(e))

print(''.join(strings))

上面的答案虽然简单得多。