Просто мысль, но вы пробовали TTPhotoViewController в проекте Three20 на GitHub?
. Это средство выбора изображений, которое может считываться из нескольких источников. Вы можете использовать его в качестве альтернативы UIImagePickerController, или источник может дать вам понять, как определить, как получить необходимую информацию.
В Python строки неизменяемы, поэтому вам нужно создать новую строку. У вас есть несколько вариантов создания новой строки. Если вы хотите удалить букву «M», где бы она ни появлялась:
newstr = oldstr.replace("M", "")
Если вы хотите удалить центральный символ:
midlen = len(oldstr)/2 # //2 in python 3
newstr = oldstr[:midlen] + oldstr[midlen+1:]
Вы спросили, заканчиваются ли строки специальным символом. Нет, вы думаете как программист на C. В Python строки хранятся с указанием их длины, поэтому любое значение байта, включая \ 0
, может появиться в строке.
Строки неизменяемы в Python, поэтому оба варианта означают в основном одно и то же.
Изменяемый способ:
import UserString
s = UserString.MutableString("EXAMPLE")
>>> type(s)
<type 'str'>
# Delete 'M'
del s[3]
# Turn it for immutable:
s = str(s)
Как мне удалить из него средний символ, то есть M?
Нельзя, потому что строки в Python неизменяемы .
Заканчиваются ли строки в Python каким-либо специальным символом?
Нет. Они похожи на списки персонажей; длина списка определяет длину строки, и никакой символ не действует как терминатор.
Что лучше - сдвигать все справа налево, начиная со среднего символа, ИЛИ создание новой строки без копирования среднего символа?
Вы не можете изменить существующую строку, поэтому вы должны создать новую, содержащую все, кроме среднего символа.
Чтобы заменить определенную позицию:
s = s[:pos] + s[(pos+1):]
Чтобы заменить определенный символ:
s = s.replace('M','')
Строки неизменяемы. Но вы можете преобразовать их в список, который можно изменить, а затем преобразовать список обратно в строку после того, как вы его изменили.
s = "this is a string"
l = list(s) # convert to list
l[1] = "" # "delete" letter h (the item actually still exists but is empty)
l[1:2] = [] # really delete letter h (the item is actually removed from the list)
del(l[1]) # another way to delete it
p = l.index("a") # find position of the letter "a"
del(l[p]) # delete it
s = "".join(l) # convert back to string
Вы также можете создать новую строку, как показали другие, взяв все , кроме нужного символа из существующей строки.
Это, вероятно, Лучший способ:
original = "EXAMPLE"
removed = original.replace("M", "")
Не беспокойтесь о переносе символов и тому подобном. Большая часть кода Python выполняется на гораздо более высоком уровне абстракции.