Python 创建列表中项的n个实例并连接一个字符串
我试图为列表中的每个项目创建5个实例,并为每个实例连接一个字符串,直到值“5”Python 创建列表中项的n个实例并连接一个字符串,python,python-3.x,Python,Python 3.x,我试图为列表中的每个项目创建5个实例,并为每个实例连接一个字符串,直到值“5” my_list=['A','B','C'] scores=[] n=0 for i in my_list: scores.append([my_list[n]]*5) n+=1 print(scores) 输出 [['A', 'A', 'A', 'A', 'A'], ['B', 'B', 'B', 'B', 'B'], ['C', 'C', 'C', 'C', 'C']] ['A_1', 'A_2
my_list=['A','B','C']
scores=[]
n=0
for i in my_list:
scores.append([my_list[n]]*5)
n+=1
print(scores)
输出
[['A', 'A', 'A', 'A', 'A'], ['B', 'B', 'B', 'B', 'B'], ['C', 'C', 'C', 'C', 'C']]
['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循环,但想不出其他方法。任何帮助都将不胜感激。原始代码中的问题是,在第一次迭代后,您从未将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']]
[['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']]
原始代码中的问题是,在第一次迭代后,永远不会将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']]
[['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']]
使用嵌套列表理解:
>>> [[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']]
使用嵌套列表理解:
>>> [[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']]
请用我的密码。这很简单
my_list=['A','B','C']
scores=[[f"{c}_{i+1}" for i in range(5)] for c in my_list]
print(scores)
请用我的密码。这很简单
my_list=['A','B','C']
scores=[[f"{c}_{i+1}" for i in range(5)] for c in my_list]
print(scores)
让我们关注您当前的编程级别。一个简单的循环嵌套就可以完成这项工作。变化最快的值进入内部循环:
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']]
[['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']]
让我们关注您当前的编程级别。一个简单的循环嵌套就可以完成这项工作。变化最快的值进入内部循环:
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']]
[['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']]
使用
product
会丢失OP期望的嵌套列表。否则,product(我的列表,索引列表)
就足够了;你不需要建立一个列表就可以立即解包。产品
也可以直接使用范围(1,6)
;你不需要先创建一个列表。嗯。。。这与什么不同?使用product
会丢失OP期望的嵌套列表。否则,product(我的列表,索引列表)
就足够了;你不需要建立一个列表就可以立即解包。产品
也可以直接使用范围(1,6)
;你不需要先创建一个列表。嗯。。。这与有什么不同?您正在引用分数[0][0]
,因此它添加了分数[0][0]
True。不要理会我的评论。仅供参考:彻底回答问题很费时。如果你的问题得到了解决,那就接受最符合你需要的解决方案来表示感谢。接受检查位于答案左上角的向上/向下箭头下方。如果出现更好的解决方案,则可以接受新的解决方案。如果你有15+的声誉,你也可以用向上或向下箭头对答案的质量/帮助性进行投票。如果解决方案不能回答问题,请留下评论。谢谢。您正在引用分数[0][0]
,因此它添加了分数[0][0]
True。不要理会我的评论。仅供参考:彻底回答问题很费时。如果你的问题得到了解决,那就接受最符合你需要的解决方案来表示感谢。接受检查位于答案左上角的向上/向下箭头下方。如果出现更好的解决方案,则可以接受新的解决方案。如果你有15+的声誉,你也可以用向上或向下箭头对答案的质量/帮助性进行投票。如果解决方案不能回答问题,请留下评论。非常感谢。