使用 Python3 从数字列表创建带分隔符的字符串

问题描述 投票:0回答:2

我有一个数字列表:

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

请指教

python python-3.x string join separator
2个回答
1
投票

x.join(lst)
使用
lst
作为分隔符连接
x
的元素。知道这一点,你想使用
x = ' OR\n'
因为这是重复的。
lst
的元素可以包含每一行的其余部分,即
'Contains([saleID],"{num}")'

这个操作有两个部分:

  1. 将数字格式化为字符串
    'Contains([saleID],"{num}")'
    ,得到一个包含四个字符串的列表,如下所示:
>>> lst = [f'Contains([saleID],"{num}")' for num in list1]
['Contains([saleID],"1")',
 'Contains([saleID],"2")',
 'Contains([saleID],"3")',
 'Contains([saleID],"4")']

还有,

  1. ' OR\n'
  2. 加入这个列表中的所有格式化字符串
>>> 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)

1
投票
c = 'Contains([saleID],"'
print(c + ('") OR\n'+c).join([str(x) for x in list1]) + '")')
© www.soinside.com 2019 - 2024. All rights reserved.