我有一个带有 if else 语句的列表理解,该语句在两个范围内循环。
当 if 条件测试为假时,是否有可能使用列表推导来打破两个循环之一?
在我的代码示例中,我想要一个有序列表,其中包含给定字母的所有唯一组合(具有指定的最大长度),按“我的”字母顺序排列。
str_len = 3
my_list = ["A", "H"]
alphabet = [" ", "A", "H"]
for i in range(str_len-1):
my_list = [i+j if i[-1] != " " else i for i in my_list for j in alphabet]
print(my_list)
这就是我得到的。
['A','A','A','AA','AAA','AAH','AH','AHA','AHH','H','H','H','哈哈','哈哈','哈哈','HH','HHA','HHH']
但是我不想重复。像这样:
['A','AA','AAA','AAH','AH','AHA','AHH','H','HA','HAA','HAH','HH','哈哈','哈哈哈']
编辑:指定我想要一个有序列表。