所以我有一个清单:
['x', 3, 'b']
我希望输出为:
[x, 3, b]
我怎么能在python中做到这一点?
如果我str(['x', 3, 'b'])
,我会得到一个引号,但我不想引用。
答案 0 :(得分:160)
在Python 2中:
mylist = ['x', 3, 'b']
print '[%s]' % ', '.join(map(str, mylist))
在Python 3中(其中print
是内置函数而不再是语法特性):
mylist = ['x', 3, 'b']
print('[%s]' % ', '.join(map(str, mylist)))
两者都返回:
[x, 3, b]
这是使用map()
函数为 mylist 的每个元素调用str,创建一个新的字符串列表,然后将其与str.join()
连接成一个字符串。然后,%
字符串格式化运算符替换%s
中的字符串而不是"[%s]"
。
答案 1 :(得分:13)
如果您使用的是Python3:
print('[',end='');print(*L, sep=', ', end='');print(']')
答案 2 :(得分:11)
这是一个简单的代码,所以如果你是新手,你应该很容易理解它。
mylist = ["x", 3, "b"]
for items in mylist:
print(items)
它打印所有这些都没有引号,就像你想要的那样。
答案 3 :(得分:10)
仅使用打印:
>>> l = ['x', 3, 'b']
>>> print(*l, sep='\n')
x
3
b
>>> print(*l, sep=', ')
x, 3, b
答案 4 :(得分:9)
我建议使用具有map
能力的生成器表达式来接受迭代器,而不是使用join
:
def get_nice_string(list_or_iterator):
return "[" + ", ".join( str(x) for x in list_or_iterator) + "]"
这里,join
是字符串类str
的成员函数。它需要一个参数:字符串的列表(或迭代器),然后返回一个新的字符串,其中包含所有连接的元素,在本例中为,
。
答案 5 :(得分:6)
您可以使用translate()
method None
删除字符串中的所有不需要的字符,其中 table
参数后跟包含字符的字符串您希望删除其 deletechars
参数。
lst = ['x', 3, 'b']
print str(lst).translate(None, "'")
# [x, 3, b]
如果您在2.6之前使用的是Python版本,则需要使用string
模块的translate()
函数,因为能够将None
作为传递直到Python 2.6才添加table
参数。使用它看起来像这样:
import string
print string.translate(str(lst), None, "'")
使用string.translate()
功能也适用于2.6+,因此最好使用它。
答案 6 :(得分:3)
这是一个交互式会话,展示了@ TokenMacGuy的单线程中的一些步骤。首先,他使用map
函数将列表中的每个项目转换为字符串(实际上,他正在创建一个新列表,而不是转换旧列表中的项目)。然后他使用字符串方法join
将这些字符串与', '
组合在一起。其余的只是字符串格式,这非常简单。 (编辑:这个实例很简单;字符串格式化通常有点复杂。)
请注意,使用join
是一种从多个子字符串构建字符串的简单而有效的方法,比通过将字符串连续添加到字符串更有效,这需要在幕后进行大量复制。 / p>
>>> mylist = ['x', 3, 'b']
>>> m = map(str, mylist)
>>> m
['x', '3', 'b']
>>> j = ', '.join(m)
>>> j
'x, 3, b'
答案 7 :(得分:1)
使用.format
进行字符串格式化
mylist = ['x', 3, 'b']
print("[{0}]".format(', '.join(map(str, mylist))))
<强>输出:强>
[x, 3, b]
<强>解释强>
map
用于将列表的每个元素映射到string
类型。,
作为分隔符。[
和]
来显示列表大括号。答案 8 :(得分:-1)
这是另一种方式......也许更加蓬勃......
mylist = ['x', 3, 'b']
print('[', end='')
print(*myList, sep=', ', end='')
print(']')
您将删除'\ n',这样您就可以连接字符串。