首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在ascii编码的字符串之间创建新行

在ascii编码的字符串之间创建新行
EN

Stack Overflow用户
提问于 2016-11-09 03:37:31
回答 1查看 29关注 0票数 0

这里的新编码器应该是一个非常简单的问题:

我正在尝试创建一个脚本,该脚本使用此代码添加连续数字并将其转换为ascii并打印出来:

代码语言:javascript
复制
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))

我希望输出是

蝙蝠猫 胖的

..。但现在是巴特卡塔

那么,我如何在每个新词之间创造一个空间呢?

我知道这可能解释得太过分了,非常抱歉。

另外,我已经知道如何使用一个简单的if / else循环来创建一个新行来检测空列表。

EN

回答 1

Stack Overflow用户

发布于 2016-11-09 04:13:55

这里有一种方法:

代码语言:javascript
复制
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))

也许不是最优雅的,但它有效:

代码语言:javascript
复制
BAT CAT FAT

打印出我们在上面进行的每个数据转换的内容:

代码语言:javascript
复制
> 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']
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40499893

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档