这一直使我感到困惑。看起来这样会更好:
my_list = ["Hello", "world"]
print(my_list.join("-"))
# Produce: "Hello-world"
比这个:
my_list = ["Hello", "world"]
print("-".join(my_list))
# Produce: "Hello-world"
是否有特定原因?
这是因为任何可迭代对象都可以连接(例如,列表,元组,字典,集合),但是其内容和“连接器” 必须是 字符串。
例如:
'_'.join(['welcome', 'to', 'stack', 'overflow'])
'_'.join(('welcome', 'to', 'stack', 'overflow'))
'welcome_to_stack_overflow'
使用字符串以外的其他东西会引发以下错误:
TypeError: sequence item 0: expected str instance, int found
rank ▲ ✰ vote url 37 511 93 416 url 为什么是string.join(list)而不是list.join(string)? 我一直被这个问题困扰.如果这样写更好: my_list = ["Hello", "world"] print my_list.join("-") # Produce: "Hello-world" 而不是: my_list = ["Hello
我试图理解背后的动机。如果已经存在类型类和,为什么有必要呢? 诚然,的实例是具体的类型,而的实例需要一个类型参数。(有关有用的解释,请参见Monoid vs MonadPlus。)但是你不能重写任何类型的约束吗 作为和的组合? 从。它的实施是: 我只能使用和实现它: 有人能澄清和之间的真正区别吗?
包中的collections.list()方法返回而不是有充分的理由吗?
问题内容: 在Python中,我可以执行以下操作: 有对象列表时,有什么简单的方法可以做到这一点? 还是我必须求助于for循环? 问题答案: 您可以改用列表推导或生成器表达式:
我的讲师在课堂上问过我这个问题,我想知道为什么是宏而不是函数?
问题内容: 我已经在Android代码中使用FloatBuffers一段时间了(从一些opengles教程中复制了它),但是我无法确切地理解此构造是什么以及为什么需要它。 例如,我在许多人的代码和android教程中看到了以下代码(或类似代码): 就我所知,这似乎是冗长和混乱的,我只是说它们只是一个浮点数的包装而已。 问题: 与任何其他类型的float集合或简单数组相反,这种类型的类(ByteBu