繁体   English   中英

a ='b'使它可以将字符串'a'更改为变量a以等于字符串'b'

[英]a = 'b' make it so string 'a' can be changed to the variable a to equal the string 'b'

因此,在python中,我想将字符串更改为文字:

a = 'b'
b = 'c'
c = 'd'

encoded = input('Type encoded text and enter for decoded text: ')
decoded_list = MAKE_LITERAL_AND_SHOW_VALUES(list(encoded))
    ##Example: ['a','b','c'] becomes [a, b, c] so becomes ['b','c','d']
decoded = CONCATENATE(decoded_list)
    ##Example: ['b','c','a'] becomes 'bcd'
print(decoded)

有什么功能使之成为可能?

您可以改用字典吗? 我的意思是,您直接问题的答案使用的是诸如globals() ...(但我不建议这样做)

a = 'b'
b = 'c'
c = 'd'

def MAKE_LITERAL_AND_SHOW_VALUE(encoded):
    return [globals()[i] for i in encoded]

print MAKE_LITERAL_AND_SHOW_VALUE(encoded)

替代方法是:

letterDict = {'a':'b', 'b':'c', 'c':'d'}

然后,如果您想使用它:

def MAKE_LITERAL_AND_SHOW_VALUE(encoded):
    letterDict = {'a':'b', 'b':'c', 'c':'d'}
    return [letterDict[i] for i in encoded]

免责声明:

(根据MattDMo的建议)

99.9%的时间使用globals()是个坏主意。 那显然是我编造的一个数字,但关键是它几乎总是不必要的。 出于大多数初学者的相同原因,我敢猜测您喜欢这种方法。 使用起来看起来很直观,在某些情况下,您可以编写更少的代码,等等。

问题是您可能养成不良习惯。 依靠模块的全局字典不是一个好的设计选择。 通常,这增加了耦合,减少了封装,并使代码很难调试。 这与将变量与函数内部的global变量传递并没有什么不同。 随着程序复杂度的增加,不要期望别人或自己(将来)对阅读所编写的代码感到满意。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM