如何以不同的方式更改python中的字母

如何以不同的方式更改python中的字母,python,Python,我想学习python,我想在没有任何模块或库的情况下更改字母。我尝试了类似的方法,但不起作用: d=list('banana') a=list('abcdefghijklmnopqrstuvwxyz') for i in range: d[i]=a[i+2] print d 我得到了这个错误: TypeError: 'builtin_function_or_method' object is not iterable 如果您能帮助我,我将不胜感激。您忘记为以下各项指定参数: 来自p

我想学习python,我想在没有任何模块或库的情况下更改字母。我尝试了类似的方法,但不起作用:

d=list('banana')
a=list('abcdefghijklmnopqrstuvwxyz')

for i in range:
    d[i]=a[i+2]
print d
我得到了这个错误:

TypeError: 'builtin_function_or_method' object is not iterable

如果您能帮助我,我将不胜感激。

您忘记为以下各项指定参数:

来自python文档:

范围(开始、停止[、步骤])这是一个创建的多功能函数 包含算术级数的列表。它最常用于 循环。参数必须是纯整数。如果步骤参数为 省略,默认为1。如果省略start参数,则 默认值为0。完整表单返回一个纯整数列表[start, 开始+步骤,开始+2*步骤,…]。如果步骤为正,则为最后一步 元素是比停止小的最大开始+i*步数;如果步骤是 负,最后一个元素是最小的开始+i*步 而不是停下来。步长不能为零(否则会引发ValueError)。 例如:

按请求编辑:

d = list('banana')
a = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']
mappings = dict((ch, a[idx+2]) for idx, ch in enumerate(set(d)))

for idx in range(len(d)):
    d[idx] = mappings[d[idx]]
#OR:
d = [mappings[d[idx]] for idx in range(len(d))]

print d

您忘记为以下项指定参数:

来自python文档:

范围(开始、停止[、步骤])这是一个创建的多功能函数 包含算术级数的列表。它最常用于 循环。参数必须是纯整数。如果步骤参数为 省略,默认为1。如果省略start参数,则 默认值为0。完整表单返回一个纯整数列表[start, 开始+步骤,开始+2*步骤,…]。如果步骤为正,则为最后一步 元素是比停止小的最大开始+i*步数;如果步骤是 负,最后一个元素是最小的开始+i*步 而不是停下来。步长不能为零(否则会引发ValueError)。 例如:

按请求编辑:

d = list('banana')
a = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']
mappings = dict((ch, a[idx+2]) for idx, ch in enumerate(set(d)))

for idx in range(len(d)):
    d[idx] = mappings[d[idx]]
#OR:
d = [mappings[d[idx]] for idx in range(len(d))]

print d

string.translate非常适合此。。。我不知道这算不算图书馆

>>> import string
>>> tab = string.maketrans("abcdefghijklmnopqrstuvwxyz","mnopqrstuvwxyzabcdefghi
jkl")
>>> print "hello".translate(tab)
tqxxa
交替地

>>> print  "".join([chr(ord(c)+13) if ord(c) + 13 < ord('z') else chr(ord('a')+(ord(c)+13)%ord('z')) for c in "hello"])
'uryyc'
>>>打印“.将[chr(ord(c)+13)如果ord(c)+13
string.translate非常适合此。。。我不知道这算不算图书馆

>>> import string
>>> tab = string.maketrans("abcdefghijklmnopqrstuvwxyz","mnopqrstuvwxyzabcdefghi
jkl")
>>> print "hello".translate(tab)
tqxxa
交替地

>>> print  "".join([chr(ord(c)+13) if ord(c) + 13 < ord('z') else chr(ord('a')+(ord(c)+13)%ord('z')) for c in "hello"])
'uryyc'
>>>打印“.将[chr(ord(c)+13)如果ord(c)+13
你到底想做什么?我正在尝试像rot13那样旋转单词,但不是用库函数手动旋转
因为我在范围内:
是错误的-范围(len(d))这里的预期输出是什么?('aabbcc')-->('ddeeff'))这是输出你到底想做什么?我正在尝试旋转像rot13这样的单词,但不是用库函数手动旋转,因为我在范围内:是错误的-范围(len(d))这里的预期输出是什么?('aabbcc')-->('ddeeff')这是输出器,d=list('aabbcc')它输出'cdefgh',但应该是'ddeeff'。我看不出problemadded示例在哪里-不是最好的示例,但它应该是word。然而,使用d=list('aabbcc'),它输出'cdefgh',但应该是'ddeeff'。我看不出problemadded示例在哪里-不是最好的示例,但它应该是WordWords。如果没有任何库,我不能这样做吗?这是我的问题。或者,第二个解决方案只适用于小写字符。。。大写字母将作为练习留给你(这也是一个13的移位)我不能在没有任何库的情况下这样做这是我的问题吗?或者第二个解决方案将只适用于小写字符。。。大写字母将留给您作为练习(这也是一个13的移位)