是否有可能从程序用户在 python 中定义的字符串中提取单个字母?例如我想提取这个字符串的单个字母:
x = raw_input("Letters i want to extract")
是否有可能从程序用户在 python 中定义的字符串中提取单个字母?例如我想提取这个字符串的单个字母:
x = raw_input("Letters i want to extract")
字符串是 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
>>>
变量具有名称和值。
字典是与值关联的名称的集合。因此,出于您的目的,您可以制作一本字典并将其视为“变量的集合”。
例如,如果您希望 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
>>> s = 'test'
>>> s[0]
't'
>>> list(s)
['t', 'e', 's', 't']
>>> for ch in s:
... print ch
...
t
e
s
t
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'
您可以像这样使用 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)