gpt4 book ai didi

python - 如何使用列表推导式在包含字符串和数字的列表中用转义逗号替换逗号

转载 作者:太空宇宙 更新时间:2023-11-03 15:48:28 25 4
gpt4 key购买 nike

我有一个包含字符串和数字元素的元组,我试图用转义逗号替换元组元素之一中存在的逗号,例如输入如下所示

('', 'i_like_cats', 'I like, cookies', 10319708L, "* / Item ID='10319708'", 'i_wish_was_an_oscar_meyer_weiner',
0.101021321)

我想要的输出是

('', 'i_like_cats', 'I like\, cookies', 10319708L, "* / Item ID='10319708'", 'i_wish_was_an_oscar_meyer_weiner',
0.101021321)

我想做的是用/替换 like 之后的 , 因为我正在将内容输出到 csv 文件,所以当管道的下一步读取文件时,它会在 'like 之间的逗号处拆分文件' 和 'cookies',即使我不想要它。我无法修改管道下游部分的代码,因此无法切换到分号或制表符分隔文件之类的文件,也无法更改。

我尝试做的是使用列表理解来解决这个问题,如下所示

line = map(lambda x: str.replace(x, '"', '\"'), line)

但这会生成一个类型错误,表明替换需要一个字符串对象,但它收到了一个长整数。

我能想到的唯一解决方案是将元组分解成单独的元素,修改包含逗号的元素,然后构建一个新的元组并将每个元素追加回去,但似乎有成为一种更 pythonic 的方式来做到这一点。

谢谢!

最佳答案

我认为列表理解最适合为每个元素应用规则;如果您知道要更改哪个字符串,为什么不能只更改那个字符串呢?

如果您想将所有逗号更改为转义逗号,不妨试试这个:

strtuple = ('', 'i_like_cats', 'I like, cookies', 10319708, "* / Item ID='10319708'", 'i_wish_was_an_oscar_meyer_weiner',
0.101021321)
converted_strlist = [i.replace(',', '\\,') if isinstance(i, str) else i for i in strtuple]

关于python - 如何使用列表推导式在包含字符串和数字的列表中用转义逗号替换逗号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48432224/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com