首页 > 解决方案 > 使用输入设置所有字符的列表。使用列表长度检查并替换具有相应值的所有字符

问题描述

我正在研究需要接受用户输入并将字符串拆分为每个/所有字符的列表的转换代码。我想将变量值设置为列表的长度并检查每个项目是否存在。为此,我的代码是...

txtIn = str(input('Enter string: '))
s = list(txtIn)
l = len(s)

我也有一个字典集如下.. binNum = { '1': '1', '2': '10', '3': '11' }

我想要做的是使用长度检查用户集列表的每个值,以更改每个字符的值。我希望这个看起来是用户输入:123。它将检查创建的列表中的“1”,然后将其替换为相应的值。一旦找到并替换了前一个字符,它将检查下一个字符('2')。我是否认为我必须设置某种临时变量来保存比较值并在之后传递值?

标签: pythonpython-3.xliststr-replace

解决方案


无需任何临时变量即可轻松完成:

txtIn = input('Enter string: ')
binNum = { '1': '1', '2': '10', '3': '11' }

print(''.join([binNum.get(x, x) for x in txtIn]))

这使用带有字典的列表推导get来获取相应的值,然后join


对于真正的二进制转换,您可以使用formator f-strings:

txtIn = int(input('Enter string: '))

print("{0:b}".format(txtIn))
# or print(f'{txtIn:b}')

推荐阅读