如何“正确”打印列表?

时间:2011-03-26 23:04:21

标签: python string

所以我有一个清单:

['x', 3, 'b']

我希望输出为:

[x, 3, b]

我怎么能在python中做到这一点?

如果我str(['x', 3, 'b']),我会得到一个引号,但我不想引用。

9 个答案:

答案 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]

<强>解释

  1. map用于将列表的每个元素映射到string类型。
  2. 元素连接在一起,并以,作为分隔符。
  3. 我们在print语句中使用[]来显示列表大括号。
  4. 参考: .format for string formatting PEP-3101

答案 8 :(得分:-1)

这是另一种方式......也许更加蓬勃......

mylist = ['x', 3, 'b']
print('[', end='')
print(*myList, sep=', ', end='')
print(']')

您将删除'\ n',这样您就可以连接字符串。