作为练习,描述关系
string.join(string.split(song))和 song 之间的。
(它们都引用一个字符串)
所有字符串都一样吗?什么时候会有所不同?
对于一个可能简单的问题,我有点惭愧地问这个问题但是,
我不明白,是什么/是异常?它们何时不同?
答案 0 :(得分:3)
默认情况下the split
method将连续分隔符组合在一起,因此如果您在原始字符串中使用它们,它们将会丢失:
>>> import string
>>> song = "I am the Walrus"
>>> string.join(string.split(song))
'I am the Walrus'
但是,如果指定要拆分的分隔符,则连续的分隔符不会分组,因此您可以保持字符串相同:
>>> string.join(string.split(song,' '))
'I am the Walrus'
答案 1 :(得分:1)
split
实际上会在分隔符的一次或多次出现时拆分。因此," a b c ".split()
和“a b c”.split()都会产生相同的list
,即['a','b','c']
。 join
仅在list
的连续元素之间添加单个分隔符实例。 “”。join(['a','b','c'])gives us
“a b c”`,匹配第二个字符串但不匹配第一个字符串。
>>> original=" a b c "
>>> " ".join(original.split())
'a b c'
BTW,不推荐使用string.split
和string.join
。只需将它们称为您正在处理的字符串的方法(如我的示例所示)。