Python列表替换

时间:2012-01-01 15:37:14

标签: python list python-2.7

  

可能重复:
  Python and Line Breaks

在Python中,我知道当你处理字符串时,可以使用“replace”来替换字符串中的某个字符。例如:

h = "2,3,45,6"
h = h.replace(',','\n')
print h

Returns:
2
3
45
6

无论如何要用列表来做这件事吗?例如,用“\ n”替换列表中的所有“,”?

列表如:

h = ["hello","goodbye","how are you"]

"hello"
"goodbye"
"how are you"

脚本应该输出这样的东西:

任何建议都会有所帮助!

5 个答案:

答案 0 :(得分:5)

看看你的例子和愿望,你可以使用str.join这可能是你想要的

>>> h
['2', '3', '45', '6']
>>> print '\n'.join(str(i) for i in h)
2
3
45
6

类似于你的第二个例子

>>> h = ["hello","goodbye","how are you"]
>>> print '\n'.join(str(i) for i in h)
hello
goodbye
how are you

如果您真的不喜欢字符串的引号,可以使用以下

>>> h = ["hello","goodbye","how are you"]
>>> print '\n'.join('"{0}"'.format(i) if isinstance(i,str) else str(i) for i in h)
"hello"
"goodbye"
"how are you"
>>> 

答案 1 :(得分:2)

你可以使用列表理解:

>>> search = 'foo'
>>> replace = 'bar'
>>> lst = ['my foo', 'foo', 'bip']
>>> print [x.replace(search, replace) for x in lst]
['my bar', 'bar', 'bip']

答案 2 :(得分:1)

在像h = [2,5,6,8,9]这样的列表中,列表本身确实没有要替换的逗号。该列表包含项25等等,逗号只是外部表示的一部分,以便更容易直观地分离项目。

因此,要从列表中生成一些输出形式但没有逗号,您可以使用任意数量的技术。例如,要将它们全部加入到不带逗号的单个字符串中,请使用:

"".join([str(x) for x in h])

这将评估为25689

答案 3 :(得分:0)

for each in h: print each

在3.x中:

for each in h: print(each)

列表只是数据的表示。您只能影响它在输出中的显示方式。

答案 4 :(得分:0)

您可以替换字符串中的',',因为','是字符串本身的一部分,但您不能替换列表中的','因为它不是列表中的项而是它是使用的通过python描述这样一个列表中的不同项目以及开始和结束方括号。这就像问你是否可以替换用于创建字符串的'''。另一方面,如果','是列表中的项目,并且你想用换行项替换它,那么你可以使用列表推导像:

['\n' if x=="," else x for x in yourlist]

或者如果您想在一行上打印每个项目,您可以使用:

for item in list:
    print item