0

列表需要转换为字符串并执行字符串操作,

有没有一种有效的方法可以将这两个操作都转换为 1,

lista = ['col-1,','col-2,','col-3,']

stra = ' '.join(lista)

stra = stra.rstrip(',')
4

5 回答 5

2

怎么样', '.join(['col-1', 'col-2', 'col-3'])?那你根本不需要rstrip

于 2012-10-03T16:47:03.090 回答
0

所有字符串方法都返回新字符串。

stra = " ".join(s.rstrip(",") for s in lista)

或者,如果您只想修剪最后一个逗号,只需" ".join(lista).rstrip(",").

于 2012-10-03T16:46:36.647 回答
0

由于该join()方法返回一个字符串,因此您可以链接方法:

stra = ' '.join(lista).rstrip(',')  # prints col-1, col-2, col-3

或者,如果你想在加入字符串之前去掉逗号(因为你在每个字符串的末尾都有逗号,我假设你想要这样做):

stra = ' '.join(map(lambda s: s.rstrip(','), lista))  # prints col-1 col-2 col-3

或者:

stra = ' '.join(s.rstrip(',') for s in lista)  # prints col-1 col-2 col-3
于 2012-10-03T16:48:21.183 回答
0

我不完全确定“将两个操作都转换为 1”是什么意思,但是如果您对 lista 没有任何控制权,并且可以依赖它采用指定的格式,那么只需执行

' '.join(lista)[:-1]

如果您确实可以控制 lista,请按照nneonneo 的建议删除列表中的逗号。

于 2012-10-03T16:57:52.347 回答
0

由于您join返回一个字符串..因此,您可以链接另一个方法调用,而不是存储它...

stra = ' '.join(Lista).rstrip(',')

或者,你可以这样做更好: -

stra = ' '.join(s.rstrip(',') for s in lista)

这不会在您的列表项之间打印逗号(,)..

于 2012-10-03T16:45:58.437 回答