这里的新编码器应该是一个非常简单的问题:
我正在尝试创建一个脚本,该脚本使用此代码添加连续数字并将其转换为ascii并打印出来:
x = '36 30 25 40 80 4
37 30 25 40 80 4'
40 30 25 40 80 4
nums = [int(n) for n in x.split()]
''.join(chr(sum(nums[i:i+2])) for i in range(0, len(nums), 2))
我希望输出为
BAT CAT
FAT
......但现在是BATCATFAT
那么如何在每个新词之间创建一个空格呢?
我意识到这可能是一种过度解释的方式,很抱歉。
此外,我已经认为我知道如何使用简单的if / else循环创建新行来检测空列表
答案 0 :(得分:0)
这是一种方法:
data = """36 30 25 40 80 4
37 30 25 40 80 4
40 30 25 40 80 4"""
lines = [x for x in data.split("\n")]
nums_list = [[int(c) for c in x.split(" ")] for x in lines]
char_list = [[chr(sum(nums[i:i+2])) for i in range(0, len(nums), 2)] for nums in nums_list]
word_list = [''.join(c) for c in char_list]
print(" ".join(word_list))
也许不是最优雅的,但它确实有效:
BAT CAT FAT
打印出我们上面采用的每个数据转换的内容:
> print(lines)
['36 30 25 40 80 4', '37 30 25 40 80 4', '40 30 25 40 80 4']
> print(nums_list)
[[36, 30, 25, 40, 80, 4], [37, 30, 25, 40, 80, 4], [40, 30, 25, 40, 80, 4]]
> print(char_list)
[['B', 'A', 'T'], ['C', 'A', 'T'], ['F', 'A', 'T']]
> print(word_list)
['BAT', 'CAT', 'FAT']