Python: 在循环中连接字符串和整数
Python: concatenate string and int in a loop
我有一个整数列表,我想将它们连接成一个循环。
这是我目前所拥有的
a = [3, 4, 6]
temp = []
for i in a:
query = 'Case:' + str(i)
temp.append(query)
print(' OR '.join(temp))
>>> Case:3 OR Case:4 OR Case:6
有没有更好的写法?
是的,您可以使用生成器表达式和 str.join
,
' OR '.join('Case: {}'.format(i) for i in a)
Example/Demo -
>>> a = [3, 4, 6]
>>> ' OR '.join('Case: {}'.format(i) for i in a)
'Case: 3 OR Case: 4 OR Case: 6'
您还可以使用 map 和 lambda 表达式:
temp = map(lambda x: 'Case: '+str(x), a)
你也可以使用理解:
>>> a = [3, 4, 6]
>>> ' OR '.join([ "Case " + str(x) for x in a ])
'Case 3 OR Case 4 OR Case 6'
完成@Joshua K 使用 map 和 lambda 的想法(尽管我认为列表理解是更好的解决方案):
>>> a = [3, 4, 6]
>>> 'OR '.join(map(lambda i: 'Case:' + str(i) + ' ', a))
Case:3 OR Case:4 OR Case:6
我有一个整数列表,我想将它们连接成一个循环。
这是我目前所拥有的
a = [3, 4, 6]
temp = []
for i in a:
query = 'Case:' + str(i)
temp.append(query)
print(' OR '.join(temp))
>>> Case:3 OR Case:4 OR Case:6
有没有更好的写法?
是的,您可以使用生成器表达式和 str.join
,
' OR '.join('Case: {}'.format(i) for i in a)
Example/Demo -
>>> a = [3, 4, 6]
>>> ' OR '.join('Case: {}'.format(i) for i in a)
'Case: 3 OR Case: 4 OR Case: 6'
您还可以使用 map 和 lambda 表达式:
temp = map(lambda x: 'Case: '+str(x), a)
你也可以使用理解:
>>> a = [3, 4, 6]
>>> ' OR '.join([ "Case " + str(x) for x in a ])
'Case 3 OR Case 4 OR Case 6'
完成@Joshua K 使用 map 和 lambda 的想法(尽管我认为列表理解是更好的解决方案):
>>> a = [3, 4, 6]
>>> 'OR '.join(map(lambda i: 'Case:' + str(i) + ' ', a))
Case:3 OR Case:4 OR Case:6