我有一个数字列表:
list1 = [1, 2, 3, 4]
我想创建一个字符串如下:
Contains([saleID],"1") OR
Contains([saleID],"2") OR
Contains([saleID],"3") OR
Contains([saleID],"4")
我尝试了以下代码:
print('Contains([saleID],"'.join(str(x) for x in list1).join('" OR'))
但我得到以下输出:
"1Contains([saleID],"2Contains([saleID],"3Contains([saleID],"4 1Contains([saleID],"2Contains([saleID],"3Contains([saleID],"4O1Contains([saleID],"2Contains([saleID],"3Contains([saleID],"4R
请指教
x.join(lst)
使用 lst
作为分隔符连接 x
的元素。知道这一点,你想使用 x = ' OR\n'
因为这是重复的。 lst
的元素可以包含每一行的其余部分,即 'Contains([saleID],"{num}")'
这个操作有两个部分:
'Contains([saleID],"{num}")'
,得到一个包含四个字符串的列表,如下所示:>>> lst = [f'Contains([saleID],"{num}")' for num in list1]
['Contains([saleID],"1")',
'Contains([saleID],"2")',
'Contains([saleID],"3")',
'Contains([saleID],"4")']
还有,
' OR\n'
>>> result = ' OR\n'.join(lst)
'Contains([saleID],"1") OR\nContains([saleID],"2") OR\nContains([saleID],"3") OR\nContains([saleID],"4")'
打印
result
,看看我们有想要的值:
Contains([saleID],"1") OR
Contains([saleID],"2") OR
Contains([saleID],"3") OR
Contains([saleID],"4")
当然,您可以在一行中完成所有操作:
>>> result = ' OR\n'.join(f'Contains([saleID],"{num}")' for num in list1)
c = 'Contains([saleID],"'
print(c + ('") OR\n'+c).join([str(x) for x in list1]) + '")')