Python 如何将多个字符串作为项目添加到列表中?
我想对于“for循环”来说,这是一个相当简单的任务,但我无法理解它。基本上,我希望循环执行以下操作: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
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]
哈哈,非常感谢您的快速帮助!成功了!现在我对列表有了更多的了解。谢谢哈哈,非常感谢您的快速帮助!成功了!现在我对列表有了更多的了解。谢谢