嵌套列表中的重复值

Repeat values in nested list

我完全是个新手,正在为训练营做准备工作。我遇到了以下 Python 练习:

我有一个嵌套列表,例如 [[1,2],[3,4]]。每个子列表中的第一个值是要重复的值,第二个是重复该值的次数。

我想得到一个包含数字重复适当次数的字符串,例如“11, 3333”。如果有多组值,应该用逗号分隔;如果只有一组,则应省略逗号。我需要创建一个函数。

我尝试为值和重复次数创建两个单独的子列表,然后 np.repeat 一个一个地创建另一个。

data_list =[[1,2],[3,4]]

num_list = [val [0] for val in data_list]
repeat_list = [val[1] for val in data_list]
result = np.repeat (num_list, repeat_list)

print (result)

[1 1 3 3 3 3]

在这种情况下,我不知道如何用逗号分隔它。这不是函数。

我觉得我可能需要将 np.repeat 与“for”循环一起使用,但我无法弄清楚它应该是什么样子。

谢谢。

你可以这样做:

result = ""
for sublist in nested_list:
    # For each sublist, turn the first element into a string, and multiply it by the second element, then add a comma
    result += str(sublist[0]) * sublist[1] + ","

# Remove the last trailing comma
result = result[:-1]

可能的解决方案:

l=  [[1, 2], [3, 4]]

final=[]    
for i in l:
    final.append(list(str(i[0]) * i[1]))

你可以这样做。

data_list =[[1,2],[3,4]]
res = []
for i in data_list:
    s = str(i[0]) * i[1]
    res.append(s)

print(f'List: {res}')
print(f'String: {", ".join(res)}')
List: ['11', '3333']
String: 11, 3333

没有 for 循环和 numpy

', '.join(
    map(lambda l: str(l[0])*l[1], data_list)
)

列表中的每个条目将其映射到字符串,然后将这些字符串连接在一起