list()函数不会将字符串分隔为字符

2024-03-29 13:09:44 发布

您现在位置:Python中文网/ 问答频道 /正文

#!/usr/bin/python

def map():
  myList = ['g fmnc wms bgblr rpylqjyrc gr zw fylb. rfyrq ufyr amknsrcpq ypc dmp. bmgle             gr gl             zw fylb gq glcddgagclr ylb rfyr\'q ufw rfgq     rcvr gq qm jmle. sqgle qrpgle.kyicrpylq() gq pcamkkclbcb.           lmu ynnjw ml rfc spj.']
  list(myList)
  print(myList)

为什么list()函数不能将列表分隔成字符?但如果我这么说的话,那就行了:

list('g fmnc wms bgblr rpylqjyrc gr zw fylb. rfyrq ufyr amknsrcpq ypc dmp. bmgle             gr gl            zw fylb gq glcddgagclr ylb rfyr\'q ufw rfgq     rcvr gq qm jmle. sqgle qrpgle.kyicrpylq() gq pcamkkclbcb.           lmu ynnjw ml rfc spj.')

Tags: listgrwmszwgqdmpmylistrpylqjyrc
3条回答

myList是一个iterable,因此list构造函数将遍历list中的元素。在您的示例中,列表中有一个字符串。在声明myList以获得预期行为时,请去掉方括号。你知道吗

这里要注意的最重要的一点是,字符串本身就是列表,集合字符。list()所做的是将一个list/iterable的每个元素放入另一个list/iterable中。这对字符串的影响是生成另一个包含该字符串的每个字符的列表(因为list()不会再次将所有这些字符重新组合成一个字符串)。你知道吗

但是,在第一行中,您并没有给它一个字符串—而是给它一个包含字符串的列表。list()将查看输入,看到第一个项目是一个完整的字符串,并将整个字符串移动到另一个列表中。所以才不分开。如果你有:

myList = 'g fmnc wms bgblr rpylqjyrc gr zw fylb. rfyrq ufyr amknsrcpq ypc dmp. bmgle             gr gl             zw fylb gq glcddgagclr ylb rfyr\'q ufw rfgq     rcvr gq qm jmle. sqgle qrpgle.kyicrpylq() gq pcamkkclbcb.           lmu ynnjw ml rfc spj.'

然后你就会得到你期望的行为。你知道吗

函数list()在从参数创建列表时只深入一层。你知道吗

当您向它传递一个包含一个元素的列表时,它将观察包含一个元素的列表,并将该列表放入一个新列表中。你知道吗

当您传递一个字符串时,它将观察一个字符列表,并将每个字符放入一个新的列表中。你知道吗

相关问题 更多 >