首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将字符串列表转换为数字,但保留空白- Python

将字符串列表转换为数字,但保留空白- Python
EN

Stack Overflow用户
提问于 2021-02-22 00:34:59
回答 1查看 66关注 0票数 0

我正在尝试将这个字符串列表arr = c zza abb baa acd b ca zzz zr il转换为数字,我这样做了,但我将它们连接到一个列表中,这不是我想要的。我希望它们保持原来的结构(子字符串之间有空格)。如果我运行以下命令:

代码语言:javascript
运行
复制
a = []
for char in arr:                       # is the issue here because I'm iterating over each char?
    number = ord(char.lower()) - 96
    a.append(number)                   # what do I change here, when appending, to keep the space?

我得到:[3, -64, 26, 26, 1, -64, 1, 2, 2, -64, 2, 1, 1, -64, 1, 3, 4, -64, 2, -64, 3, 1, -64, 26, 26, 26, -64, 26, 18, -64, 9, 12],它将空格转换为-64,所以如果我运行这个命令,就会删除-64

代码语言:javascript
运行
复制
a = [x for x in a if x != -64]

然后返回:[3, 26, 26, 1, 1, 2, 2, 2, 1, 1, 1, 3, 4, 2, 3, 1, 26, 26, 26, 26, 18, 9, 12]

然而,我仍然将它们放在一个组中,而不是保持它们原来的空间分隔。总体而言,我需要对每组字符串进行排序,但不能使用sorted().sort(),同时要维护它们的子字符串组。所以我不能,我需要保留空格并对子字符串进行排序(当它们是数字形式时)。

EN

回答 1

Stack Overflow用户

发布于 2021-02-22 00:39:52

您根本不需要转换为整数,即可对每组字符进行排序:

代码语言:javascript
运行
复制
>>> s = "c zza abb baa acd b ca zzz zr il"
>>> " ".join("".join(sorted(grp)) for grp in s.split())
'c azz abb aab acd b ac zzz rz il'

或者,如果您的意思是对组本身进行排序:

代码语言:javascript
运行
复制
>>> " ".join(sorted(s.split()))
'abb acd b baa c ca il zr zza zzz'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66304572

复制
相关文章

相似问题

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