def replace(items: list, value: int) -> list:
"""takes a list of lists of strings and an int"""
func = lambda x, y: x + str(y)
for i, sublist in enumerate(items):
tempA = []
for sequence in sublist:
tempB = [func(sequence, x) for x in range(value)]
tempA.extend(tempB)
items[i] = tempA
return items
def irv_to_stv_ballot(values, count):
return [[word + str(digit) for word in value for digit in range(count)] for value in values]
def irv_to_stv_ballot(values, count):
result = []
for value in values:
inner_res = []
for word in value:
for count in range(count):
inner_res.append(word + str(count))
result.append(inner_res)
return result
from itertools import repeat
def irv_to_stv_ballot(values, count):
return [
["%s%d" % (e, i) for item in value for i, e in enumerate(repeat(item, count))]
for value in values
]
print(irv_to_stv_ballot([["NDP", "CPC"], ["GREEN"]], 3))
下面是一个使用lambda的变体:
只需使用
loops
或list comprehension
:对于每个子列表的每个单词,使用从0到限制的数字连接:也可以将
itertools.repeat
与enumerate()
一起使用:输出:
相关问题 更多 >
编程相关推荐