Python 生成带有for循环的列表

Python 生成带有for循环的列表,python,list,for-loop,python-3.x,Python,List,For Loop,Python 3.x,人类有22条染色体和2条性染色体X和Y 我想从'chr1'、'chr2'、'chr3'中生成这些染色体名称chr22’,“chrX”和“chrY”,只输入染色体数目和X和Y # Input the data here number_of_chr = 22,'X','Y' for x in range(number_of_chr[0]): print('chr'+str(x+1)) 从代码中,我可以生成'chr1'到'chr22',但如何生成'chrX'和'chrY'并将它们附加到列表

人类有22条染色体和2条性染色体X和Y

我想从'chr1'、'chr2'、'chr3'中生成这些染色体名称chr22’,“chrX”和“chrY”,只输入染色体数目和X和Y

# Input the data here
number_of_chr = 22,'X','Y'

for x in range(number_of_chr[0]):
    print('chr'+str(x+1))
从代码中,我可以生成'chr1'到'chr22',但如何生成'chrX'和'chrY'并将它们附加到列表中,以便最终结果如下所示:

chrID  = ['chr1','chr2','chr3',......'chr19','chr20','chr21','chr22','chrX','chrY']

使用
append
附加到列表

r = list(range(1,23))
r.append('X')
r.append('Y')
l = []

for x in r:
    l.append('chr'+str(x))
range
返回范围内的数字列表(在python2.7中)。只需将x和y附加到该列表中即可。
我猜您正在使用python 3,因此必须将范围转换为如上所示的列表。

谢谢@rjv。是的,我正在使用pyhon 3,但是它得到了
类型错误:无法隐式地将'int'对象转换为str
。如果我打印'l',它只有'chr1'到'chr22'没有X和Y。如果我运行代码,X是X,Y是由1添加的吗?是的,那是因为你用1添加'X'。我已经修复了它。这是我想要的,因为输入。谢谢。这个简单的代码真的很好!但我需要先得到输入值。非常感谢。
>>> from itertools import chain
>>> number_of_chr = 22,'X','Y'
>>> n, *rest = number_of_chr
>>> ['chr%s'%i for i in chain(range(1, n+1), rest)]
['chr1', 'chr2', 'chr3', 'chr4', 'chr5', 'chr6', 'chr7', 'chr8', 'chr9', 'chr10', 'chr11', 'chr12', 'chr13', 'chr14', 'chr15', 'chr16', 'chr17', 'chr18', 'chr19', 'chr20', 'chr21', 'chr22', 'chrX', 'chrY']
chrID = [ 'chr{}'.format(x) for x in list(range(1,23)) + ['X', 'Y'] ]