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()。然后,%字符串格式运算符将字符串替换为%sin ,而不是in "[%s]"。
map函数调用str的每个元素mylist,创建了一个新的字符串列表,然后将其与连接为一个字符串str.join。然后,他使用%字符串格式运算符代替%sin中的字符串"[%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 之间的区别strrepr。strlist