Python 如何将多个字符串作为项目添加到列表中?

Python 如何将多个字符串作为项目添加到列表中?,python,python-2.7,for-loop,Python,Python 2.7,For Loop,我想对于“for循环”来说,这是一个相当简单的任务,但我无法理解它。基本上,我希望循环执行以下操作: pop1 = ( [fitness[0][1]] * fitness[0][0] + [fitness[1][1]] * fitness[1][0] + [fitness[2][1]] * fitness[2][0] + [fitness[3][1]] * fitness[3][0] ) 但是有N次。到目前为止,我已经做到了这一点,但无法添加。Fitness

我想对于“for循环”来说,这是一个相当简单的任务,但我无法理解它。基本上,我希望循环执行以下操作:

pop1 = (
    [fitness[0][1]] * fitness[0][0] +
    [fitness[1][1]] * fitness[1][0] + 
    [fitness[2][1]] * fitness[2][0] + 
    [fitness[3][1]] * fitness[3][0]
)
但是有N次。到目前为止,我已经做到了这一点,但无法添加。Fitness[i][1]是字符串,Fitness[i][0]是整数

pop1 = []

for i in range(0,popnb):
  x = fitness[i][1]
  y = fitness[i][0]
  z = [x]*y
  pop1.append(z)

我想答案不远了,但我们非常感谢您的帮助!谢谢

您正在构建一个长长的列表;您希望扩展
pop1
列表,而不是追加:

pop1 = []

for i in range(popnb):
    x = fitness[i][1]
    y = fitness[i][0]
    z = [x] * y
    pop1.extend(z)
您也可以使用
pop1+=z

如果
popnb
fitness
的长度,只需直接循环
fitness

pop1 = []

for f in fitness:
    pop1 += [f[1]] * f[0]
您可以使用
itertools
函数进行重复和链接:

from itertools import repeat, chain

pop1 = list(chain.from_iterable(repeat(f[1], f[0]) for f in fitness))

你正在建立一个长长的列表;您希望扩展
pop1
列表,而不是追加:

pop1 = []

for i in range(popnb):
    x = fitness[i][1]
    y = fitness[i][0]
    z = [x] * y
    pop1.extend(z)
您也可以使用
pop1+=z

如果
popnb
fitness
的长度,只需直接循环
fitness

pop1 = []

for f in fitness:
    pop1 += [f[1]] * f[0]
您可以使用
itertools
函数进行重复和链接:

from itertools import repeat, chain

pop1 = list(chain.from_iterable(repeat(f[1], f[0]) for f in fitness))

假设fitness中的每个列表都有2个值,您可以使用列表压缩:
pop1=[y代表x,y适合范围(x)]

例如:

fitness = [[8, 10], [8, 3], [5, 8], [5, 1], [2, 10]]
pop1 = [y for x, y in fitness for _ in range(x)]
#pop1 is equal to:
[10, 10, 10, 10, 10, 10, 10, 10,
 3, 3, 3, 3, 3, 3, 3, 3,
 8, 8, 8, 8, 8,
 1, 1, 1, 1, 1,
 10, 10]

假设fitness中的每个列表都有2个值,您可以使用列表压缩:
pop1=[y代表x,y适合范围(x)]

例如:

fitness = [[8, 10], [8, 3], [5, 8], [5, 1], [2, 10]]
pop1 = [y for x, y in fitness for _ in range(x)]
#pop1 is equal to:
[10, 10, 10, 10, 10, 10, 10, 10,
 3, 3, 3, 3, 3, 3, 3, 3,
 8, 8, 8, 8, 8,
 1, 1, 1, 1, 1,
 10, 10]

哈哈,非常感谢您的快速帮助!成功了!现在我对列表有了更多的了解。谢谢哈哈,非常感谢您的快速帮助!成功了!现在我对列表有了更多的了解。谢谢