Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 函数不会将字符串分隔为字符_Python - Fatal编程技术网

Python 函数不会将字符串分隔为字符

Python 函数不会将字符串分隔为字符,python,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. s

为什么列表函数不将列表分隔为字符?但如果我这样说的话,那么它是有效的:

#!/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/iterable中的每个元素放入另一个list中。这对字符串的影响是生成另一个包含该字符串的每个字符的列表,因为该列表不会再次将所有这些字符重新组合为一个字符串

然而,在第一行中,您并没有给它一个字符串,而是给它一个包含字符串的列表。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.')
然后,您将获得预期的行为。

在使用参数创建列表时,函数列表仅深入一层

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


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

myList是一个iterable,因此列表构造函数将遍历列表中的元素。在您的情况下,列表中有一个字符串。当您声明myList以获得预期行为时,请丢失方括号。

列表在其构造函数中获取序列。使用包含单个字符串元素的文本列表对象分配myList。当您调用listmyList时,它的参数已经是一个列表,因此在新的列表对象中提取并引用一个元素。当您使用字符串作为参数调用list时,它会将其解释为listify的序列,并按元素(字符串中的单个字符)将它们分开。

我会尝试将它们分开

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.'

myList[0]访问列表的第一个元素,即整个字符串。拆分然后基本上就是将它们拆分成字符。我想它已经作为列表返回了,但是为了确保它是一个列表,只需在它周围放上“列表”之类的东西。

因为你给了它一个元素列表来进行迭代。为什么用list参数调用list?另外,不要调用自己的函数映射;这是一个内置函数。对于myList,它的类型为list[[char]],第二个示例是list[char]。字符串不是列表。不过字符串是可编辑的。列表将一个iterable作为参数。@Gerrat哎呀,修正了。谢谢

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.']
    print list(myList[0].split())