首页 > 解决方案 > 对 .join() 感到困惑

问题描述

我是python新手,完全糊涂了,

为什么','.join('a','b','c')出现错误,一个",".join(['a','b','c'])没有。

为什么下面的代码有相同的输出?

In [3]: ",".join({'a':1,'b':2,'c':3})
Out[3]: 'b,a,c'

In [4]: ",".join({'a':2,'b':1,'c':3})
Out[4]: 'b,a,c'

In [5]: ",".join({'a':3,'b':2,'c':1})
Out[5]: 'b,a,c'

标签: python

解决方案


文档说明str.join该方法采用可以迭代的任何类型(列表、元组等) iterable

str.join(iterable)¶

返回一个字符串,它是 iterable 中字符串的串联。TypeError如果迭代中有任何非字符串值,包括字节对象,将引发A。元素之间的分隔符是提供此方法的字符串。


在您的第一个示例中,您将三个参数传递给一个方法,该方法期望一个接收 a TypeError,而您在传递列表的示例中使用该方法(通过使用方括号表示)。在您键入的示例中,您传递的字典也是可迭代的,但是,当迭代时,它们会产生它们的键(注意:顺序未确定)。所以 say: {'a':1,'b':2,'c':3}are:的键'a''b'并且'c'由于这些都是字符串,因此该方法可以很好地用逗号将它们连接在一起


推荐阅读