嵌套列表中的重复值
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)
)
列表中的每个条目将其映射到字符串,然后将这些字符串连接在一起
我完全是个新手,正在为训练营做准备工作。我遇到了以下 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)
)
列表中的每个条目将其映射到字符串,然后将这些字符串连接在一起