如何打印包含字符串和整数的列表推导式,并仅在字符串中添加符号?

问题描述

我有一个整数和字符串的混合列表,我只需要在字符串后打印'**'。

data = [4,'Fred','London',34,78,'@#=£',89,'Ice cream','Hamilton',12,'tingle']
[print(data,end='**') for data in data if isinstance(data,str)]

这是输出

Fred**London**@#=£**Ice cream**Hamilton**tingle**

所需的输出

4,Fred**,London**,@#=£**,Ice Cream**,Hamilton**,tingle**

解决方法

您的if现在正在过滤列表data。将其放在for之前。另外,使用str.join将各种字符串与,连接起来:

data = [4,'Fred','London',34,78,'@#=£',89,'Ice cream','Hamilton',12,'tingle']

print( ','.join('{}**'.format(item) if isinstance(item,str) else str(item) for item in data) )

打印:

4,Fred**,London**,@#=£**,Ice cream**,Hamilton**,tingle**