-1

是否有可能从程序用户在 python 中定义的字符串中提取单个字母?例如我想提取这个字符串的单个字母:

     x = raw_input("Letters i want to extract")
4

5 回答 5

3

字符串是 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
>>> 
于 2013-05-09T00:27:04.400 回答
1

变量具有名称和值。

字典是与值关联的名称的集合。因此,出于您的目的,您可以制作一本字典并将其视为“变量的集合”。

例如,如果您希望 x 中每个字母的“单个变量”是counters,那么您可以使用以下代码:

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)

这是一个示例运行。

>>> 统计()
我要提取的字母:bell
文本我想做一些统计:你好世界
完整计数:{'b': 0, 'e': 1, 'l': 3}
文本中出现 0 次 b
文本中出现了 1 次 e
文本中出现了 3 次 l
文本中出现了 3 次 l
于 2013-05-09T00:05:55.933 回答
1
>>> s = 'test'
>>> s[0]
't'
>>> list(s)
['t', 'e', 's', 't']
>>> for ch in s:
...     print ch
...
t
e
s
t
于 2013-05-08T23:42:37.777 回答
1

x = 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'
于 2013-05-08T23:42:55.733 回答
0

您可以像这样使用 for 循环

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)
于 2013-05-08T23:41:41.087 回答