2009-11-17 5 views
0

Я хотел бы, чтобы удалить один символ из строки, как это:Удалить один символ из строки

string = "ASDFVGHFJHRSFDZFDJKUYTRDSEADFDHDS" 

print len(string) 

(33)

Так я хотел бы, чтобы удалить один случайный символ в этой строке, а затем len = 32 Каков наилучший способ сделать это?

EDIT: спасибо за ваши ответы, но я что-то забыл: Я бы хотел напечатать символ удален; Использование техники Anurag Uniyal?

Спасибо!

+0

Выберите случайный индекс меньше, чем число символов в строке и удалить его? – Joey

+1

Пожалуйста, определите «лучший» для вашего сценария. –

ответ

3
import random 

index = random.randint(0, len(yourstring)-1) 
yourstring = yourstring[:index] + yourstring[index+1:] 

print yourstring[index] 
5
>>> import random 
>>> s = "ASDFVGHFJHRSFDZFDJKUYTRDSEADFDHDS" 
>>> i = random.randint(0, len(s)-1) 
>>> print s[:i] + s[i+1:] 
ASDFVGHFJHRSFDZFDJKUYRDSEADFDHDS 
>>> print s[i] 
T 

В основном получает случайное число от 0 до LEN-1 строки и удалить символ в этой позиции индекса в строке, вы можете преобразовать строку в список, дель пункта и вновь присоединиться, но это будет быстрее и проще читать

7
>>> s="ASDFVGHFJHRSFDZFDJKUYTRDSEADFDHDS" 
>>> r=random.randrange(len(string)) 
>>> print s[:r]+s[r+1:] 
ASDFVGHJHRSFDZFDJKUYTRDSEADFDHDS 
+1

+1 для использования правой функции, randrange - randint странно несовместим с обычными соглашениями на Python («правосвязь всегда исключена») и на самом деле решет на меня! -) –

Смежные вопросы