为了账号安全,请及时绑定邮箱和手机立即绑定

在列表中创建 n 个项目实例并连接一个字符串

在列表中创建 n 个项目实例并连接一个字符串

慕村225694 2023-07-11 15:05:26
我试图为列表中的每个项目创建 5 个实例,并为每个实例连接一个字符串,直到值“5”。my_list=['A','B','C']scores=[]n=0for i in my_list:    scores.append([my_list[n]]*5)    n+=1print(scores)输出[['A', 'A', 'A', 'A', 'A'], ['B', 'B', 'B', 'B', 'B'], ['C', 'C', 'C', 'C', 'C']]scores_list=[]n=1for list_of_lists in scores:    while n<6:        scores_list.append(scores[0][0]+'_'+str(n))        n+=1print(scores_list)输出['A_1', 'A_2', 'A_3', 'A_4', 'A_5']预期的[['A_1', 'A_2', 'A_3', 'A_4', 'A_5'], ['B_1', 'B_2', 'B_3', 'B_4', 'B_5'], ['C_1', 'C_2', 'C_3', 'C_4', 'C_5']]我尝试使用更多 while 循环,但想不出其他任何东西。任何帮助,将不胜感激。
查看完整描述

4 回答

?
ABOUTYOU

TA贡献1812条经验 获得超5个赞

一个简单的循环嵌套就可以完成这项工作。变化最快的值进入内部循环:


scores = []

for letter in "ABC":

    list_5 = []

    for number in range(1, 6):

        list_5.append(letter + '_' + str(number))


    scores.append(list_5)


print(scores)

输出:


[['A_1', 'A_2', 'A_3', 'A_4', 'A_5'], ['B_1', 'B_2', 'B_3', 'B_4', 'B_5'], ['C_1', 'C_2', 'C_3', 'C_4', 'C_5']]



查看完整回答
反对 回复 2023-07-11
?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

使用嵌套列表理解:


>>> [[f"{char}_{num+1}" for num in range(5)] for char in my_list]

[['A_1', 'A_2', 'A_3', 'A_4', 'A_5'], ['B_1', 'B_2', 'B_3', 'B_4', 'B_5'], ['C_1', 'C_2', 'C_3', 'C_4', 'C_5']]


查看完整回答
反对 回复 2023-07-11
?
开心每一天1111

TA贡献1836条经验 获得超13个赞

原始代码中的问题是,您从未在第一次迭代后将 n 的值重置回 1。但您甚至可以n通过以下方式跳过该变量:


my_list=['A','B','C']

duplications = 5

scores=[]

for i in my_list:

    scores.append([f'{i}_{n}' for n in range(1, duplications+1)])

print(scores)

输出:


[['A_1', 'A_2', 'A_3', 'A_4', 'A_5'], ['B_1', 'B_2', 'B_3', 'B_4', 'B_5'], ['C_1', 'C_2', 'C_3', 'C_4', 'C_5']]



查看完整回答
反对 回复 2023-07-11
?
慕码人8056858

TA贡献1803条经验 获得超6个赞

请使用我的代码。这很简单。


my_list=['A','B','C']


scores=[[f"{c}_{i+1}" for i in range(5)] for c in my_list]


print(scores)


查看完整回答
反对 回复 2023-07-11
  • 4 回答
  • 0 关注
  • 136 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信