2013-05-08 3 views
-2

Есть ли возможность извлечь отдельные буквы из строки, которую пользователь программы определяет в python? Например я хочу, чтобы извлечь отдельные буквы этой строки:Извлечение одиночных букв из строки в python

 x = raw_input("Letters i want to extract") 
+0

'для single_letter в x'? – squiguy

ответ

0

Вы можете использовать для цикла как этот

x = raw_input("Letters i want to extract") 
for ch in x: 
    print x 

Вы также можете получить отдельные символы, как это

x[0] # first character 
x[1] # second character 

Вы можете преобразовать в список, подобный этому

char_list = list(x) 
1
>>> s = 'test' 
>>> s[0] 
't' 
>>> list(s) 
['t', 'e', 's', 't'] 
>>> for ch in s: 
...  print ch 
... 
t 
e 
s 
t 
1

х = raw_input ("Письма я хочу, чтобы извлечь")

for i in x: 
    print i 
    #or do whatever you please 

Я думаю, что это то, что ищете. Код snip-it выполняет итерацию по строке и выводит каждую букву. Вместо печати вы могли бы делать то, что захотите.

Вы также можете получить доступ к каждой индивидуальности письма с помощью синтаксиса x [index_value].

ie.

x[0] would yield 'L' 
x[1] would yield 'e' 
+0

Хороший улов; Я обновил свой ответ. – agconti

1

Переменная имеет имя и значение.

Словарь представляет собой набор имен, связанных со значениями. Таким образом, для ваших целей вы могли бы сделать словарь и рассматривать его как «набор переменных».

Например, если вы хотите, «одиночные переменные» для каждой буквы х, чтобы быть счетчики, то вы можете использовать этот код:

def stats(): 
    x = raw_input("Letters i want to extract: ") 
    data = raw_input("Text I want to do some stats on: ") 

    # make a dictionary of letters in x 
    d = {} 
    for chr in x: 
     d[chr] = 0 # initialize counter 

    # collect stats 
    for item in data: 
     if item in d: 
     d[item] += 1 

    # show results in a couple of ways 
    print "The full tally: %r" % d 
    for chr in x: 
     print "There were %d occurrences of %c in the text" % (d[chr], chr) 

Вот пример запуска.

>>> stats() 
Letters i want to extract: bell 
Text I want to do some stats on: hello world 
The full tally: {'b': 0, 'e': 1, 'l': 3} 
There were 0 occurrences of b in the text 
There were 1 occurrences of e in the text 
There were 3 occurrences of l in the text 
There were 3 occurrences of l in the text 
+0

Я клянусь, что ОП изначально просил уметь обрабатывать элементы «х» в качестве переменных - отсюда и наклон ответа. Не знаю, почему Edit History на этом сообщении больше не показывает этого! – azhrei

2

Строка представляет собой последовательность в Python, индексирование начинается с нуля. Чтобы получить конкретный элемент или (символ) строки просто используйте следующую команду:

>>> x = "This is a string" 
>>> first_letter = x[0] 
>>> second_letter = x[1] 
>>> last_letter = x[-1] 
>>> print first_letter 
T 
>>> print last_letter 
g 
>>> 

Вы также можете перебрать очень легко, так как:

>>> for index, letter in enumerate(x): 
    print index, letter 

0 T 
1 h 
2 i 
3 s 
4 
5 i 
6 s 
7 
8 a 
9 
10 s 
11 t 
12 r 
13 i 
14 n 
15 g 
>>> 
Смежные вопросы