将布尔列表转换为字符串

5 投票
5 回答
1837 浏览
提问于 2025-04-15 21:35

我该如何把这个:

[True, True, False, True, True, False, True]

转换成这个:

'AB DE G'

注意:输出中缺少C和F,因为输入列表中对应的项是False。

5 个回答

3

这段代码的目的是为了实现某个功能。它可能涉及到一些基本的编程概念,比如变量、循环或者条件判断。简单来说,代码就是一系列指令,计算机按照这些指令一步一步地执行任务。

在这段代码中,可能会看到一些常见的编程元素,比如如何定义一个变量,如何使用循环来重复某个操作,或者如何根据条件来决定执行哪一部分代码。这些都是编程中非常基础的知识。

如果你对这些概念还不太熟悉,可以想象成在给计算机下达命令,就像你在给朋友发指令一样。你需要清楚地告诉计算机你想让它做什么,才能得到想要的结果。

总之,这段代码的核心就是通过编写指令来让计算机完成特定的任务,理解这些基本概念会对你学习编程非常有帮助。

In [1]: ''.join(map(lambda b, c: c if b else ' ',
                    [True, True, False, True, True, False, True],
                    'ABCDEFG'))
Out[1]: 'AB DE G'
9

你可以使用 string.uppercase 来代替 chr 和 ord 这两个函数。这样做会根据你所在的地区给出不同的结果。如果你只想要 ASCII 字符,可以使用 string.ascii_uppercase。

>>> import string
>>> bools = [True, True, False, True, True, False, True]
>>> ''.join(string.uppercase[i] if b else ' ' for i, b in enumerate(bools))

'AB DE G'
11

假设你的布尔值列表不是太长:

bools = [True, True, False, True, True, False, True]

print ''.join(chr(ord('A') + i) if b else ' ' for i, b in enumerate(bools))

撰写回答