Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 创建列表中项的n个实例并连接一个字符串_Python_Python 3.x - Fatal编程技术网

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

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

我试图为列表中的每个项目创建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', '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+的声誉,你也可以用向上或向下箭头对答案的质量/帮助性进行投票。如果解决方案不能回答问题,请留下评论。非常感谢。