我是这个枚举命令的新手,我不确定我是否应该像这样使用它,我想要做的是枚举0到129之间的ASCII字符,我得到的是'每个角色前1'。
for x in range(129):
xxx = chr(x)
z = list(xxx)
for i, a in enumerate(z, 1):
print(i, a)
随机文字输出:
1 .
1 /
1 0
1 1
1 2
1 3
1 4
1 5
1 6
1 7
1 8
1 9
答案 0 :(得分:2)
您正在循环遍历中的单个字符的列表:
>>> xxx = chr(65)
>>> xxx
'A'
>>> list(xxx)
['A']
>>> len(list(xxx))
1
然后循环遍历该单个字符的enumerate()
结果,是的,您只获得1
。
你为x
的每个值重复那个内循环,所以你得到它129次。正是您的外for x in range(129)
循环使1
重复。
您将enumerate()
用于外部循环,并且每次将单个字符转换为列表都没有意义:
for i, x in enumerate(range(129)):
xxx = chr(x)
print(i, xxx)
请注意,x
已经增加整数。 enumerate()
这真的太过分了。只需打印x + 1
相同的数字:
for x in range(129):
xxx = chr(x)
print(x + 1, xxx)