str.partition
возвращает кортеж из трех элементов. Строка перед строкой секционирования, сама секция и остальная часть строки. Таким образом, он должен быть использован как этот
first, middle, rest = name.partition(" ")
print first, rest
Чтобы использовать str.split
, вы можете просто напечатать расщепленные строки, как этот
print name.split(" ")
Но, когда вы называете это так, если строка имеет более одного пробела, вы получите более двух элементов. Например
name = "word1 word2 word3"
print name.split(" ") # ['word1', 'word2', 'word3']
Если вы хотите разделить только один раз, вы можете указать время числа разделить в качестве второго параметра, как этого
name = "word1 word2 word3"
print name.split(" ", 1) # ['word1', 'word2 word3']
Но, если вы пытаетесь разделенным на основе пробельные символы, вам не нужно проходить " "
. Вы можете просто сделать
name = "word1 word2 word3"
print name.split() # ['word1', 'word2', 'word3']
Если вы хотите, чтобы ограничить число расколов,
name = "word1 word2 word3"
print name.split(None, 1) # ['word1', 'word2 word3']
Примечание: не Использование None
в split
или указать никаких параметров, это то, что происходит
Цитирование от split documentation
Если sep не указан или None, используется другой алгоритм разделения : пробелы последовательных пробелов рассматриваются как один разделитель , и результат не будет содержать пустых строк в начале или заканчивается, если строка имеет ведущую или конечный пробел. Следовательно, , разделяющее пустую строку или строку, состоящую только из пробелов с разделителем None, возвращает [].
Таким образом, вы можете изменить свою программу как этот
print "Partition:"
first, middle, rest = name.partition(" ")
for current_string in (first, rest):
print current_string
print "Split:"
for current_string in name.split(" "):
print current_string
Или вы можете использовать str.join
метод как этот
print "Partition:"
first, middle, rest = name.partition(" ")
print "\n".join((first, rest))
print "Split:"
print "\n".join(name.split())