问题描述
我有一个整数和字符串的混合列表,我只需要在字符串后打印'**'。
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**