我想为类似于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