Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.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列表理解_Python_List_List Comprehension - Fatal编程技术网

具有多个循环的Python列表理解

具有多个循环的Python列表理解,python,list,list-comprehension,Python,List,List Comprehension,我的目标是创建一个一行程序来生成以下列表: list_100 = ['ch1%.2d' % x for x in range(1,6)] list_200 = ['ch2%.2d' % x for x in range(1,6)] final_list = list_100 + list_200 [ch101,ch102,ch103,ch104,ch105, ch201,ch202,ch203,ch204,ch205] 有没有办法在一行中做到这一点: final_list = ['ch%.1

我的目标是创建一个一行程序来生成以下列表:

list_100 = ['ch1%.2d' % x for x in range(1,6)]
list_200 = ['ch2%.2d' % x for x in range(1,6)]

final_list = list_100 + list_200
[ch101,ch102,ch103,ch104,ch105, ch201,ch202,ch203,ch204,ch205]
有没有办法在一行中做到这一点:

final_list = ['ch%.1d%.2d' % (y for y in range(1,3), x for x in range(1,6)]

也许是这样的

final_list = ['ch{}0{}'.format(x,y) for x in range(1,3) for y in range(1,6)]
要处理以下注释,只需将
x
乘以10即可:

final_list = ['ch{}{}'.format(x*10,y) for x in range(1,12) for y in range(1,6)]

也许是这样的

final_list = ['ch{}0{}'.format(x,y) for x in range(1,3) for y in range(1,6)]
要处理以下注释,只需将
x
乘以10即可:

final_list = ['ch{}{}'.format(x*10,y) for x in range(1,12) for y in range(1,6)]

这是无效的python:

final_list = ['ch%.1d%.2d' % (y for y in range(1,3), x for x in range(1,6)]
…因为括号未闭合

你想要:

print(['ch{}0{}'.format(i, j) for i in range(1, 3) for j in range(1,6)])
结果:

['ch101', 'ch102', 'ch103', 'ch104', 'ch105', 'ch201', 'ch202', 'ch203', 'ch204', 'ch205']

这是无效的python:

final_list = ['ch%.1d%.2d' % (y for y in range(1,3), x for x in range(1,6)]
…因为括号未闭合

你想要:

print(['ch{}0{}'.format(i, j) for i in range(1, 3) for j in range(1,6)])
结果:

['ch101', 'ch102', 'ch103', 'ch104', 'ch105', 'ch201', 'ch202', 'ch203', 'ch204', 'ch205']
你非常接近:

>>> ['ch%.1d%.2d' % (y, x) for y in range(1,3) for x in range(1,6)]
['ch101',
 'ch102',
 'ch103',
 'ch104',
 'ch105',
 'ch201',
 'ch202',
 'ch203',
 'ch204',
 'ch205']
你非常接近:

>>> ['ch%.1d%.2d' % (y, x) for y in range(1,3) for x in range(1,6)]
['ch101',
 'ch102',
 'ch103',
 'ch104',
 'ch105',
 'ch201',
 'ch202',
 'ch203',
 'ch204',
 'ch205']
我会:

final_list=["ch{}{:02d}".format(x,y) for x in (1,2) for y in range(1,6)]
#['ch101', 'ch102', 'ch103', 'ch104', 'ch105', 
  'ch201', 'ch202', 'ch203', 'ch204', 'ch205']
或者,结合你所拥有的,没有什么错:

final_list=['ch1%.2d' % x for x in range(1,6)]+['ch2%.2d' % x for x in range(1,6)]
我会:

final_list=["ch{}{:02d}".format(x,y) for x in (1,2) for y in range(1,6)]
#['ch101', 'ch102', 'ch103', 'ch104', 'ch105', 
  'ch201', 'ch202', 'ch203', 'ch204', 'ch205']
或者,结合你所拥有的,没有什么错:

final_list=['ch1%.2d' % x for x in range(1,6)]+['ch2%.2d' % x for x in range(1,6)]

您还可以使用
itertools.product
生成值

>>> from itertools import product
>>> ['ch{}{:02}'.format(x, y) for x, y in product(range(1,3), range(1, 6))]
['ch101', 'ch102', 'ch103', 'ch104', 'ch105', 'ch201', 'ch202', 'ch203', 'ch204', 'ch205']

您还可以使用
itertools.product
生成值

>>> from itertools import product
>>> ['ch{}{:02}'.format(x, y) for x, y in product(range(1,3), range(1, 6))]
['ch101', 'ch102', 'ch103', 'ch104', 'ch105', 'ch201', 'ch202', 'ch203', 'ch204', 'ch205']

final_list=['ch1%.2d'%x代表范围(1,6)中的x]+['ch2%.2d'%x代表范围(1,6)]
有什么问题吗?
final_list=['ch1%.2d'%x代表范围(1,6)中的x]+['ch2%.2d'%x代表范围(1,6)]
的一个问题是,一旦第二个数字超过9,它就会中断。这同样适用于另一个基于
str.format
的解决方案。你是对的,我在提交此解决方案时注意到,但我采取了简单的方法,只是解决了问题:)-我也不清楚9之后的预期行为是什么。这个解决方案的一个问题是,一旦第二个数字超过9,它就会崩溃。这同样适用于另一个基于
str.format
的解决方案。你是对的,我在提交此解决方案时注意到了这一点,但我采取了简单的方法,只是解决了问题:)-我也不清楚9之外的预期行为。实际上,我将有成百上千个这样的选项:row001_column00001到row001_column00100到row099_column00001到row999_column00100所以使用范围。嵌套列表理解对于您已经在做的事情没有任何固有的优势:两个理解和列表添加。实际上,我会有成百上千个这样的理解:row001_column00001到row001_column00100到row099_column00001到row999_column00100,所以请使用范围。嵌套列表理解并没有任何固有的优势:两个理解和列表添加。