python - 将字符串转换为位数组
问题描述
我怎样才能创建一个 Python 函数
- 一个字符串
- 像这样的数组
[0, 0, ... 0]
(每个字母一个零)
并返回
- 如果它们各自的字符出现在单词中,则将零转换为一的新数组。
因此,如果一个单词有'A'
or'a'
并且数组中的第一个点对应于'a'
,那么输出数组的第一个点将有 a 1
:
[1, ...]
如果一个单词有'B'
or 'b'
,那么输出数组1
的第二个位置将有 a 。如果一个词有 an'a'
和 a 'b'
,那么输出数组1
的第一个和第二个位置将有 a :
[1, 1, ...]
等等。所以字符串"abba"
会产生这样的结果:
[1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
理想情况下,我还可以搜索不在字母表中的字符,例如!
and ?
,然后将其他位添加到数组中以表示这些字符。
欢迎任何帮助!万分感谢。
解决方案
为什么不创建一个简单的映射字典
import string
alphabet=string.ascii_lowercase
d=dict(zip(alphabet,range(0,26)))
a=[0]*26
字典看起来像这样
{'a': 0,
'b': 1,
'c': 2,
'd': 3,
'e': 4,
'f': 5,
'g': 6,
'h': 7,
'i': 8,
'j': 9,
'k': 10,
'l': 11,
'm': 12,
'n': 13,
'o': 14,
'p': 15,
'q': 16,
'r': 17,
's': 18,
't': 19,
'u': 20,
'v': 21,
'w': 22,
'x': 23,
'y': 24,
'z': 25}
查找和更新列表的逻辑
for i in set('aabbc?'):
index_to_update=d.get(i,None)
if index_to_update is not None:
a[index_to_update]=1
print(a)#[1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
推荐阅读
- javascript - Video.js 怎么会快速旋转质量选择?
- angularjs - 我无法在 AngularJS 中下载 zip 文件(来自 Laravel 响应)
- c++ - 如何从列表中找到以'b'开头的单词以及带有4个符号的单词?
- c - 如何将未知数量的整数 fscaf 放入数组中
- regex - 如何使用正则表达式从字符串的开头和结尾捕获 2 种不同的模式?
- mongodb - 在理解 Springboot 和 MongoDB 时遇到问题
- list - 返回类型'列表
- jquery - 根据 ajax 响应的结果在下拉菜单中自动选择一个选项
- django - 如何安装 libpq-fe.h?
- python - Python 3.6+:具有相同键但顺序不同的两个字典的相等性