Answers:
在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
in ,而不是in "[%s]"
。
map
函数调用str
的每个元素mylist
,创建了一个新的字符串列表,然后将其与连接为一个字符串str.join
。然后,他使用%
字符串格式运算符代替%s
in中的字符串"[%s]"
。
"[{0}]".format(", ".join(str(i) for i in mylist))
map(f, xs)
(或imap
在python2.x中)喜欢。倾向于执行较少的字节码,并且通常更紧凑。当然,不要这就是远逊于(f(x) for x in xs)
f
map(lambda x:..., xs)
(... for x in xs)
这是简单的代码,因此,如果您是新手,则应该足够容易地理解它。
mylist = ["x", 3, "b"]
for items in mylist:
print(items)
如您所愿,它会全部打印不带引号的内容。
map
建议不要使用join
可以接受迭代器的生成器表达式:
def get_nice_string(list_or_iterator):
return "[" + ", ".join( str(x) for x in list_or_iterator) + "]"
这里join
是字符串类的成员函数str
。它使用一个参数:一个字符串列表(或迭代器),然后返回一个新字符串,其中所有元素都由串联,
。
", ".join( str(x) for x in list_or_iterator).join('[]')
您可以使用它的字符串中删除所有不想要的字符translate()
的方法与None
为table
参数,随后包含字符(S)你想为它取出一个字符串deletechars
参数。
lst = ['x', 3, 'b']
print str(lst).translate(None, "'")
# [x, 3, b]
如果您使用的是2.6之前的Python版本,则需要使用string
模块的translate()
功能,因为直到2.6才添加了None
作为table
参数传递的功能。使用它看起来像这样:
import string
print string.translate(str(lst), None, "'")
使用此string.translate()
功能在2.6+中也可以使用,因此使用它可能是更可取的。
lst = ["it isn't", 3, 'b']
["it isnt", 3, b]
lst = ['it isn\'t', 3, 'b']
这是一个交互式会话,显示了@TokenMacGuy的一线代码中的一些步骤。首先,他使用该map
函数将列表中的每个项目转换为字符串(实际上,他正在创建一个新列表,而不是在旧列表中进行转换)。然后,他使用string方法join
将这些字符串结合', '
在一起。其余的只是字符串格式,这非常简单。(编辑:此实例非常简单;字符串格式通常会有些复杂。)
请注意,使用join
是从几个子字符串构建字符串的一种简单而有效的方法,比通过向字符串中连续添加字符串(这样做涉及在幕后进行大量复制)来实现效率要高得多。
>>> mylist = ['x', 3, 'b']
>>> m = map(str, mylist)
>>> m
['x', '3', 'b']
>>> j = ', '.join(m)
>>> j
'x, 3, b'
使用.format
字符串格式化,
mylist = ['x', 3, 'b']
print("[{0}]".format(', '.join(map(str, mylist))))
输出:
[x, 3, b]
说明:
map
用于将列表的每个元素映射到string
类型。,
分隔符连接在一起成为一个字符串。[
和]
来显示列表大括号。.format
最pythonic的方式。但是,我当然接受分歧。;)
@AniMenon启发我编写了一个pythonic更通用的解决方案。
mylist = ['x', 3, 'b']
print('[{}]'.format(', '.join(map('{}'.format, mylist))))
它仅使用该format
方法。没有任何痕迹str
,并且允许对元素格式进行微调。例如,如果将浮点数作为列表的元素,则在这种情况下,可以通过添加转化说明符来调整其格式:.2f
mylist = [1.8493849, -6.329323, 4000.21222111]
print("[{}]".format(', '.join(map('{:.2f}'.format, mylist))))
输出是相当不错的:
[1.85, -6.33, 4000.21]
print(["Sam"])
调用repr("Sam")
,它返回'Sam'
(带引号),这与您调用print("Sam")
和python调用时str("Sam")
返回Sam
(不带引号)不同。有关更多信息,请参见和或Python 和s 之间的区别str
repr
。str
list