所以我有一个清单:
['x', 3, 'b']
我希望输出为:
[x, 3, b]
我怎么能在python中这样做?
如果我这样做str(['x', 3, 'b']),我会得到一个引号,但我不想引用.
Sin*_*ion 173
在Python 2中:
mylist = ['x', 3, 'b']
print '[%s]' % ', '.join(map(str, mylist))
Run Code Online (Sandbox Code Playgroud)
在Python 3中(其中print是内置函数而不是语法特性):
mylist = ['x', 3, 'b']
print('[%s]' % ', '.join(map(str, mylist)))
Run Code Online (Sandbox Code Playgroud)
两者都回归:
[x, 3, b]
Run Code Online (Sandbox Code Playgroud)
这是使用map()函数为mylist的每个元素调用str ,创建一个新的字符串列表,然后将其连接到一个字符串中str.join().然后,%字符串格式化运算符替换字符串而不是%sin "[%s]".
ree*_*997 15
这是一个简单的代码,所以如果你是新手,你应该很容易理解它.
mylist = ["x", 3, "b"]
for items in mylist:
print(items)
Run Code Online (Sandbox Code Playgroud)
它打印所有这些都没有引号,就像你想要的那样.
Kab*_*bie 13
如果您使用的是Python3:
print('[',end='');print(*L, sep=', ', end='');print(']')
Run Code Online (Sandbox Code Playgroud)
Fin*_*inn 12
仅使用打印:
>>> l = ['x', 3, 'b']
>>> print(*l, sep='\n')
x
3
b
>>> print(*l, sep=', ')
x, 3, b
Run Code Online (Sandbox Code Playgroud)
map我建议使用一个join能够接受迭代器的生成器表达式,而不是使用它:
def get_nice_string(list_or_iterator):
return "[" + ", ".join( str(x) for x in list_or_iterator) + "]"
Run Code Online (Sandbox Code Playgroud)
这里join是字符串类的成员函数str.它需要一个参数:字符串的列表(或迭代器),然后返回一个新字符串,其中包含所有连接的元素,在本例中,.
您可以使用其translate()方法从字符串中删除所有不需要的字符,None对于table参数,后跟包含要为其deletechars参数删除的字符的字符串.
lst = ['x', 3, 'b']
print str(lst).translate(None, "'")
# [x, 3, b]
Run Code Online (Sandbox Code Playgroud)
如果您在2.6之前使用的是Python版本,则需要使用string模块的translate()函数,因为在Python 2.6之前不会添加None作为table参数传递的能力.使用它看起来像这样:
import string
print string.translate(str(lst), None, "'")
Run Code Online (Sandbox Code Playgroud)
使用该string.translate()功能也适用于2.6+,因此使用它可能更好.