当前位置: 首页 > 面试题库 >

如何制作一个连续的字母列表python(从az到aa,ab,ac等)

裴威
2023-03-14
问题内容

我想为类似于excel工作表的应用程序按字母顺序列出。

用户将输入单元格的数量,我想生成列表。例如,用户需要54个单元。然后我会生成

‘a’,’b’,’c’,…,’z’,’aa’,’ab’,’ac’,…,’az’,’ba’,’bb’

我可以从[[ref]]生成列表

 from string import ascii_lowercase
 L = list(ascii_lowercase)

问题答案:

使用itertools.product

from string import ascii_lowercase
import itertools

def iter_all_strings():
    for size in itertools.count(1):
        for s in itertools.product(ascii_lowercase, repeat=size):
            yield "".join(s)

for s in iter_all_strings():
    print(s)
    if s == 'bb':
        break

结果:

a
b
c
d
e
...
y
z
aa
ab
ac
...
ay
az
ba
bb

这具有远远超出两个字母组合的额外好处。如果您需要一百万个字符串,它将很乐意为您提供三个,四个和五个字母字符串。

额外的风格提示:如果您不希望break在底部循环中使用显式的内容,则可以islice使循环自行终止:

for s in itertools.islice(iter_all_strings(), 54):
    print s


 类似资料:
  • 假设您在python中输入了一个数字,并且希望生成一个连续数字列表,最多为,如 你怎么能这么做?

  • 问题内容: 假设您在python中输入了数字,并且想生成一个连续数字列表,例如 你怎么能这样 问题答案: 在Python 3中,您可以像这样使用内置函数 注意1: Python 3.x的函数返回一个对象。如果需要列表,则需要使用答案中所示的功能将其显式转换为列表。 注意2: 我们将数字9传递给函数,因为,函数将生成直到给定数字但不包括数字的数字。因此,我们给出实际数字+ 1。 注意3: Pytho

  • 问题内容: 我有一个整数列表,我想生成一个包含所有连续整数列表的列表。 我有以下可行的方法,但似乎做起来很糟糕: 我已经看到其他问题,表明itertools.groupby是执行此操作的有效方法,但是我对该函数不熟悉,而且似乎在编写lambda函数来描述连续性方面遇到麻烦。 问题:是否有更好的方法(可能使用itertools.groupby?) 注意事项:full_list将具有1到59之间的整数

  • 问题内容: 我是一名基本的python程序员,因此希望我的问题的答案会很容易。我正在尝试拿字典并将其附加到列表中。然后,字典更改值,然后再次循环添加。似乎每次执行此操作时,列表中的所有词典都会更改其值以匹配刚刚添加的值。例如: 我认为结果是,但是我得到了: 任何帮助是极大的赞赏。 问题答案: 您需要追加一个 副本 ,否则您将一遍又一遍地添加对同一词典的引用: 我用和代替和; 您不想掩盖内置类型。

  • 问题内容: 我在可变字符串中定义了一个大写字母,我想输出字母表中的下一个和上一个字母。例如,如果变量等于,我将要输出和。 问题答案: 单程:

  • 问题内容: 我想识别列表中的连续数字组,以便: 返回值: 并且想知道实现此目的的最佳方法是什么(特别是如果Python内置了某些东西)。 编辑:注意,我最初忘记提及个人数字应作为个人数字而不是范围返回。 问题答案: 是在4.0版中添加的。 演示版 应用此工具,我们将生成一个生成器函数来查找连续数字的范围。 所述源执行模拟一个经典配方(由@Nadia Alramli所证明)。 注意:more_ite